История изменений
Исправление PPP328, (текущая версия) :
поэтому нет проблем с обработкой строк вида «Фирма Argus», где намешаны англ. с рус..
Их и на UTF-8 нет, не знаю, кто вам сказал обратно.
А «длина строки» (а не количество codepoints!) в utf-8 получается через strlen. wcslen вам возвращает codepoints для сконвертированного wchar.
Я вас, наверное, удивлю, но wchar вам не гарантирует, что один wchar - одно знакоместо. Он гарантирует, что у вас один символ из Unicode таблицы может поместиться в один wchar. А (внезапно!) в unicode часть символов - это модификаторы символа, так что zalgo-text - это не один символ wchar, а такое же количество codepoints, что и в utf-8.
Более того, все эти извращения с wchar - костыль:
The width of wchar_t is compiler-specific and can be as small as 8 bits. Consequently, programs that need to be portable across any C or C++ compiler should not use wchar_t for storing Unicode text.
Исправление PPP328, :
поэтому нет проблем с обработкой строк вида «Фирма Argus», где намешаны англ. с рус..
Их и на UTF-8 нет, не знаю, кто вам сказал обратно.
А «длина строки» (а не количество codepoints!) в utf-8 получается через strlen. wcslen вам возвращает codepoints для сконвертированного wchar.
Я вас, наверное, удивлю, но wchar вам не гарантирует, что один wchar - одно знакоместо. Он гарантирует, что у вас один символ из Unicode таблицы может поместиться в один wchar. А (внезапно!) в unicode часть символов - это модификаторы символа, так что zalgo-text - это не один символ wchar, а такое же количество codepoints, что и в utf-8.
Исправление PPP328, :
поэтому нет проблем с обработкой строк вида «Фирма Argus», где намешаны англ. с рус..
Их и на UTF-8 нет, не знаю, кто вам сказал обратно.
А «длина строки» (а не количество codepoints!) в utf-8 получается через strlen. То же самое вам возвращает wcslen для сконвертированного wchar.
Я вас, наверное, удивлю, но wchar вам не гарантирует, что один wchar - одно знакоместо. Он гарантирует, что у вас один символ из Unicode таблицы может поместиться в один wchar. А (внезапно!) в unicode часть символов - это модификаторы символа, так что zalgo-text - это не один символ wchar, а такое же количество codepoints, что и в utf-8.
Исходная версия PPP328, :
поэтому нет проблем с обработкой строк вида «Фирма Argus», где намешаны англ. с рус..
Их и на UTF-8 нет, не знаю, кто вам сказал обратно.
А «длина строки» в utf-8 получается через strlen. То же самое вам возвращает wcslen для сконвертированного wchar.
Я вас, наверное, удивлю, но wchar вам не гарантирует, что один wchar - одно знакоместо. Он гарантирует, что у вас один символ из Unicode таблицы может поместиться в один wchar. А (внезапно!) в unicode часть символов - это модификаторы символа, так что zalgo-text - это не один символ wchar, а такое же количество codepoints, что и в utf-8.