это - одна из самых запутывающих точек JS: 'эта' переменная значит для большей части локального объекта..., но функции являются также объектами, таким образом, 'это' указывает там. Существуют другие тонкие моменты, но я не помню их всех.
я обычно избегаю использования 'этого', просто определяю локальное 'меня' переменная и использование это вместо этого.
Для UTF8 вы должны сами сгенерировать кодировку с помощью правил найдено, например, здесь . Например, немецкий диез s (ß, кодовая точка 0xdf) имеет кодировку UTF8 0xc3,0x9f. Ваш электронный символ (é, кодовая точка 0xe9) имеет кодировку UTF8 0xc3,0xa9.
И вы можете поместить произвольные шестнадцатеричные символы в свои строки с помощью:
char *cv = "r\xc3\xa9sum\xc3\xa9";
char *sharpS = "\xc3\x9f";
Если у вас компилятор C99, вы можете использовать
$ 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é
wchar_t - это тип, который вы ищете: http://opengroup.org/onlinepubs/007908799/xsh/wchar.h.html