Как я представляю символ Unicode в литеральной строке ISO/ANSI C, когда набором символов является ASCII?

это - одна из самых запутывающих точек JS: 'эта' переменная значит для большей части локального объекта..., но функции являются также объектами, таким образом, 'это' указывает там. Существуют другие тонкие моменты, но я не помню их всех.

я обычно избегаю использования 'этого', просто определяю локальное 'меня' переменная и использование это вместо этого.

6
задан James McNellis 20 June 2010 в 01:54
поделиться

3 ответа

Для UTF8 вы должны сами сгенерировать кодировку с помощью правил найдено, например, здесь . Например, немецкий диез s (ß, кодовая точка 0xdf) имеет кодировку UTF8 0xc3,0x9f. Ваш электронный символ (é, кодовая точка 0xe9) имеет кодировку UTF8 0xc3,0xa9.

И вы можете поместить произвольные шестнадцатеричные символы в свои строки с помощью:

char *cv = "r\xc3\xa9sum\xc3\xa9";
char *sharpS = "\xc3\x9f";
10
ответ дан 8 December 2019 в 13:47
поделиться

Если у вас компилятор C99, вы можете использовать ) и вводить кодовые точки Unicode непосредственно в исходный код.

$ cat wc. c

#include <locale.h>
#include <stdio.h>
#include <wchar.h>

int main(void) {
  const wchar_t *name = L"r\u00e9sum\u00e9";
  setlocale(LC_CTYPE, "en_US.UTF-8");
  wprintf(L"name is %ls\n", name);
  return 0;
}

$ / usr / bin / gcc -std = c99 -pedantic -Wall wc.c

$ ./a.out

name is résumé
6
ответ дан 8 December 2019 в 13:47
поделиться

wchar_t - это тип, который вы ищете: http://opengroup.org/onlinepubs/007908799/xsh/wchar.h.html

1
ответ дан 8 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: