Модератор: Модераторы
runewalsh писал(а):Ключевая фича UTF-8 — бинарная совместимость с (7-bit) ASCII.
runewalsh писал(а):спецификация вообще не завязывается ни на какую кодировку, просто декларирует совместимость со всеми, где размер базового типа — 1 байт.
runewalsh писал(а):Благодаря этому сторонняя либа может вообще не париться с кодировкой строк, а обрабатывать их как последовательности байт.
runewalsh писал(а):Благодаря этому сторонняя либа может вообще не париться с кодировкой строк, а обрабатывать их как последовательности байт. Пример — Lua (да-да, парсер и прочие нетривиальные вещи в комплекте), где все строки "8-bit clean"
debi12345 писал(а):Я есть большой фанат UTF8, но как формата ХРАНЕНИЯ текстовых ФАЙЛОВ.
Практический вопрос. У вас есть система на линухе, есть некая прога, у нее есть конфигурационный файл, в котором все стандартные примеры и описания на английском. Вам нужно некий параметр заменить на русский. В начале файла не BOM. Как Вы на практике определяете в каком формате нужно написать русский текст? В UTF8 или в системной 8-битовой кодировке?
I don't know if it is useful if I repeat again because it seems nowbody reads
or believes it. Anyway, once again.
utf16 surrogate pair code points have no common code units with UCS2 -> there
is no problem to have surrogate pairs in a UCS2 string as long the pair is
not split in the middle. If one searches for a character constant in a string
in utf-16 by character index one knows that it is a single 16 bit code unit
if the searched character is in BMP (Basic Multilingual Plane). Searching for
a substring with surrogate pairs works without further measures. What is more
difficult is to determine the count of glyphs in a string. That is difficult
in UCS4 too because there could be decomposed characters in the string.
debi12345 писал(а):По мере того как UTF8 становится стандартом де-факто для "help system & config files" ЛИНУКСа, данные косяки уходят в прошлое.
debi12345 писал(а):Мартин пишет, что UTF32 - тоже не панацея:
debi12345 писал(а):По мере того как UTF8 становится стандартом де-факто для "help system & config files" ЛИНУКСа, данные косяки уходят в прошлое.
И решают их особо одарённые англоговорящие ментейнеры чрезвычайно просто: собирают пакет вообще без файлов локализации
Навеяно пакетом редактора авидемукс, на федоровском диске он был со всеми локализациями интерфейса а новая версия в репозитории совсем без них, так что это вина буржуев которым плевать на все языки кроме английского и кодировка тут вторична.
alexey38 писал(а):А именно, на моем компе задача для UTF8 считается 48 сек, а с UTF16, UTF32 - 2 мс. Разница в 24 тыс. раз, т.е. на 4 порядка
for j:=1 to UTF8Length(utf8) do
begin
c8:=UTF8Copy(utf8, j, 1);
if c8=#32 then
Inc(TestCount);
end;
for j:=1 to Length(utf8) do
begin
c8:=utf8[j];
if c8=#32 then
Inc(TestCount);
end;
Тогда у меня вопрос: почему тогда в linux все на UTF8? Неужели разработчики в linux не проводили таких тестов?
Ведь UTF-8 совместим с ASCII. А тогда можно делать так:
hovadur писал(а):Ведь UTF-8 совместим с ASCII. А тогда можно делать так:
alexey38 писал(а):В 2, 3, 4 байтных символах строки UTF-8 чему там будут равны эти байты, вдруг они тоже будут равны #32
SSerge писал(а):Да и подсчитывать можно не только пробелы, но, к примеру, символы русского алфавита.
alexey38 писал(а):В 2, 3, 4 байтных символах строки UTF-8 чему там будут равны эти байты
SSerge писал(а):Вообще то достаточно прочитать стандарт на UTF-8, чтобы убедиться, что эти байты НИКОГДА не будут равны #32.
alexey38 писал(а): код только за счет использования костылей, то это лучшее доказательство ущербности UTF-8.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 245