кодировка символов в libc? - PullRequest
4 голосов
/ 28 мая 2009

Какая кодировка символов ожидается в libc? Например, gethostname (char name, size_t namelen); принимает char в качестве аргумента. Ожидается ли, что параметр name будет закодирован в utf8 (который сохраняет ascii нетронутым) или в простом ascii или каком-либо другом формате?

Также C предписывает какую-либо схему кодировки символов?

Ответы [ 4 ]

2 голосов
/ 28 мая 2009

Все строковые функции (кроме widechar) поддерживают только встроенную кодировку, например ASCII в Unix / Linux / Windows или EBCDIC на мэйнфреймах / компьютерах среднего уровня IBM.

1 голос
/ 28 мая 2009
  • char использует ASCII
  • wchar_t - стандартный тип данных C для Unicode

используйте и для работы с широкими символами.

0 голосов
/ 28 мая 2009

Вам, вероятно, придется использовать стороннюю библиотеку, например GLib . Эта библиотека переносима и очень полезна, она также предоставляет регулярные выражения, структуры данных и многое другое.

0 голосов
/ 28 мая 2009

char должно быть 7-битной совместимой кодировкой ASCII (хотя я не могу найти какую-либо определенную ссылку на это). Определение для wchar_t оставлено для реализации , но стандарт C требует, чтобы символы из набора C переносимых символов были одинаковыми. Если я правильно понимаю, тогда

char a = 'a';
wchar_t aw = L'a';
if (a == (char)aw) {
    // should be true
}

Стандарт ничего не говорит о UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...