История изменений
Исправление
dzidzitop,
(текущая версия)
:
Unicode - определяет кодовую таблицу.
wchar_t - Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant.
http://pubs.opengroup.org/onlinepubs/007908775/xsh/stddef.h.html
Где тут юникод? Где определение, что, например ((wchar_t) 100500) означает руну «ветер» в системе письменности туземцев Тасмании? Наоборот, говорится, что нихрена тут не определяется.
Для кажного из кодпойнта в юникоде такое описание есть.
Ну и вот ещё смотри: https://en.wikipedia.org/wiki/Wide_character#Relation_to_UCS_and_Unicode
И посмотри на <wchar.h> и насладись «богатством» возможностей: https://ru.wikipedia.org/wiki/Wchar.h
====
Но некоторые люди из комитета уже допёрли, что это говно полное, поэтому в C11 появились типы char16_t, char32_t. Но, правда, никаких инструментов работы с ними (хотя бы printf, scanf) не подвезли. Зато каждое значение этих типов однозначно интерпретируется согласно кодовой таблице Unicode.
====
iconv сделан нормально. С wchar_t он не работает. Он работает с ***конкретными кодировками*** в бинарном формате (т.е. с последовательностью байт).
=====
Хотя, через две(!) конверсии можно из wchar_t получить char32_t: wchar_t * -> wctomb (1) -> mbrtoc32 (2) -> char32_t *
Это успех!
Исправление
dzidzitop,
:
Unicode - определяет кодовую таблицу.
wchar_t - Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant.
http://pubs.opengroup.org/onlinepubs/007908775/xsh/stddef.h.html
Где тут юникод? Где определение, что, например ((wchar_t) 100500) означает руну «ветер» в системе письменности туземцев Тасмании? Наоборот, говорится, что нихрена тут не определяется.
Для кажного из кодпойнта в юникоде такое описание есть.
Ну и вот ещё смотри: https://en.wikipedia.org/wiki/Wide_character#Relation_to_UCS_and_Unicode
И посмотри на <wchar.h> и насладись «богатством» возможностей: https://ru.wikipedia.org/wiki/Wchar.h
====
Но некоторые люди из комитета уже допёрли, что это говно полное, поэтому в C11 появились типы char16_t, char32_t. Но, правда, никаких инструментов работы с ними (хотя бы printf, scanf) не подвезли. Зато каждое значение этих типов однозначно интерпретируется согласно кодовой таблице Unicode.
====
iconv сделан нормально. С wchar_t он не работает. Он работает с ***конкретными кодировками*** в бинарном формате (т.е. с последовательностью байт).
=====
Хотя, через две(!) конверсии можно из wchar_t получить char32_t: wchar_t * -> wctomb (1) -> mbrtoc32 (2) -> char32_t
Это успех!
Исправление
dzidzitop,
:
Unicode - определяет кодовую таблицу.
wchar_t - Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant.
http://pubs.opengroup.org/onlinepubs/007908775/xsh/stddef.h.html
Где тут юникод? Где определение, что, например ((wchar_t) 100500) означает руну «ветер» в системе письменности туземцев Тасмании? Наоборот, говорится, что нихрена тут не определяется.
Для кажного из кодпойнта в юникоде такое описание есть.
Ну и вот ещё смотри: https://en.wikipedia.org/wiki/Wide_character#Relation_to_UCS_and_Unicode
И посмотри на <wchar.h> и насладись «богатством» возможностей: https://ru.wikipedia.org/wiki/Wchar.h
====
Но некоторые люди из комитета уже допёрли, что это говно полное, поэтому в C11 появились типы char16_t, char32_t. Но, правда, никаких инструментов работы с ними (хотя бы printf, scanf) не подвезли. Зато каждое значение этих типов однозначно интерпретируется согласно кодовой таблице Unicode.
====
iconv сделан нормально. С wchar_t он не работает. Он работает с ***конкретными кодировками*** в бинарном формате (т.е. с последовательностью байт).
Исправление
dzidzitop,
:
Unicode - определяет кодовую таблицу.
wchar_t - Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant.
http://pubs.opengroup.org/onlinepubs/007908775/xsh/stddef.h.html
Где тут юникод? Где определение, что, например ((wchar_t) 100500) означает руну «ветер» в системе письменности туземцев Тасмании? Наоборот, говорится, что нихрена тут не определяется.
Для кажного из кодпойнта в юникоде такое описание есть.
Ну и вот ещё смотри: https://en.wikipedia.org/wiki/Wide_character#Relation_to_UCS_and_Unicode
И посмотри на <wchar.h> и насладись «богатством» возможностей: https://ru.wikipedia.org/wiki/Wchar.h
====
Но некоторые люди из комитета уже допёрли, что это говно полное, поэтому в C11 появились типы char16_t, char32_t. Но, правда, никаких инструментов работы с ними не подвезли. Зато каждое значение этих типов однозначно интерпретируется согласно кодовой таблице Unicode.
====
iconv сделан нормально. С wchar_t он не работает. Он работает с ***конкретными кодировками*** в бинарном формате (т.е. с последовательностью байт).
Исправление
dzidzitop,
:
Unicode - определяет кодовую таблицу.
wchar_t - Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant.
http://pubs.opengroup.org/onlinepubs/007908775/xsh/stddef.h.html
Где тут юникод? Где определение, что, например ((wchar_t) 100500) означает руну «ветер» в системе письменности туземцев Тасмании? Наоборот, говорится, что нихрена тут не определяется.
Для кажного из кодпойнта в юникоде такое описание есть.
Ну и вот ещё смотри: https://en.wikipedia.org/wiki/Wide_character#Relation_to_UCS_and_Unicode
====
Но некоторые люди из комитета уже допёрли, что это говно полное, поэтому в C11 появились типы char16_t, char32_t. Но, правда, никаких инструментов работы с ними не подвезли. Зато каждое значение этих типов однозначно интерпретируется согласно кодовой таблице Unicode.
====
iconv сделан нормально. С wchar_t он не работает. Он работает с ***конкретными кодировками*** в бинарном формате (т.е. с последовательностью байт).
Посмотри на <wchar.h> и насладись богатством возможностей: https://ru.wikipedia.org/wiki/Wchar.h
Исходная версия
dzidzitop,
:
Unicode - определяет кодовую таблицу.
wchar_t - Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant.
http://pubs.opengroup.org/onlinepubs/007908775/xsh/stddef.h.html
Где тут юникод? Где определение, что, например ((wchar_t) 100500) означает руну «ветер» в системе письменности туземцев Тасмании? Наоборот, говорится, что нихрена тут не определяется.
Для кажного из кодпойнта в юникоде такое описание есть.
Ну и вот ещё смотри: https://en.wikipedia.org/wiki/Wide_character#Relation_to_UCS_and_Unicode
====
Но некоторые люди из комитета уже допёрли, что это говно полное, поэтому в C11 появились типы char16_t, char32_t. Но, правда, никаких инструментов работы с ними не подвезли. Зато каждое значение этих типов однозначно интерпретируется согласно кодовой таблице Unicode.
iconv сделан нормально. С wchar_t он не работает. Он работает с ***конкретными кодировками*** в бинарном формате (т.е. с последовательностью байт).
Посмотри на <wchar.h> и насладись богатством возможностей: https://ru.wikipedia.org/wiki/Wchar.h