LINUX.ORG.RU

История изменений

Исправление 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