The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Оптимизация и тюнинг)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Отказаться от UTF-8, Sergey Maslennikov (ok), 06-Авг-17, (0) [смотреть все] +4

Сообщения [Сортировка по времени | RSS]


1. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 07-Авг-17, 02:19 
Приведенное вами условие (распаковка) - надуманно, высосано из пальца и взято с потолка. И не имеет никакого отношения к строгим доказательствам чего бы то ни было.
Ответить | Правка | Наверх | Cообщить модератору

2. "Отказаться от UTF-8"  +2 +/
Сообщение от Sergey Maslennikov (ok), 07-Авг-17, 07:50 
> ... условие (распаковка) - надуманно

А понимаешь, если не паковать, то ответ тривиален. В случае русского языка UTF-8 уступает вдвое любой распространённой двуязычной кодировке по занимаемому месту на диске и энергозатратам на копирование и передачу. Ты можешь почитать об этом, например, в Википедии [1] или здесь же [2].

Причина в том, что в распакованном виде в UTF-8 русским буквам отведены 2-байтные коды в отличие от английских и большей части букв западноевропейских языков, которые записывают 1-байтными кодами.

[1] https://en.wikipedia.org/wiki/UTF-8#Comparison_with_single-b...
[2] https://www.opennet.me/openforum/vsluhforumID1/51935.html

Ответить | Правка | Наверх | Cообщить модератору

3. "Отказаться от UTF-8"  +1 +/
Сообщение от eRIC (ok), 07-Авг-17, 08:49 
>> ... условие (распаковка) - надуманно
> А понимаешь, если не паковать, то ответ тривиален. В случае русского языка
> UTF-8 уступает вдвое любой распространённой двуязычной кодировке по занимаемому месту
> на диске и энергозатратам на копирование и передачу. Ты можешь почитать
> об этом, например, в Википедии [1] или здесь же [2].
> Причина в том, что в распакованном виде в UTF-8 русским буквам отведены
> 2-байтные коды в отличие от английских и большей части букв западноевропейских
> языков, которые записывают 1-байтными кодами.
> [1] https://en.wikipedia.org/wiki/UTF-8#Comparison_with_single-b...
> [2] https://www.opennet.me/openforum/vsluhforumID1/51935.html

тогда в чем проблема, если знаете что под Unicode кодировку выделяются 2 байта и более? (UTF-8, UTF-16, UTF-32 и т.д.). Не нравится Unicode, не используйте, за универсальность нужно чем-то жертвовать

>английских и большей части букв западноевропейских языков, которые записывают 1-байтными кодами

потому что большинство этих букв покрываются ASCII таблицей, и в Unicode таблице тоже соответствуют первым 128 или 255 символам

Ответить | Правка | Наверх | Cообщить модератору

13. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 07-Авг-17, 18:17 
> в чем проблема, если знаете

Не помогает :(

> под Unicode кодировку выделяются 2 байта и более ...

Под кириллическую букву. И вот если выделенное вместе с запихнутыми туда кодами букв запаковать, то получите случай, проблема для которого задана в исходном посте.

Ответить | Правка | Наверх | Cообщить модератору

4. "Отказаться от UTF-8"  +/
Сообщение от ПавелСemail (ok), 07-Авг-17, 10:25 
>> ... условие (распаковка) - надуманно
> А понимаешь, если не паковать, то ответ тривиален. В случае русского языка
> UTF-8 уступает вдвое любой распространённой двуязычной кодировке по занимаемому месту
> на диске и энергозатратам на копирование и передачу. Ты можешь почитать
> об этом, например, в Википедии [1] или здесь же [2].
> Причина в том, что в распакованном виде в UTF-8 русским буквам отведены
> 2-байтные коды в отличие от английских и большей части букв западноевропейских
> языков, которые записывают 1-байтными кодами.
> [1] https://en.wikipedia.org/wiki/UTF-8#Comparison_with_single-b...
> [2] https://www.opennet.me/openforum/vsluhforumID1/51935.html

Современность это UTF-8. Переданный файл при наличии шрифтов правильно отобразиться в любом регионе мира. В случае например с koi8-r это уже будет затруднительно. Процессоры и гигабайты уже не проблема.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

6. "Отказаться от UTF-8"  +1 +/
Сообщение от Andrey Mitrofanov (?), 07-Авг-17, 13:21 
> регионе мира. В случае например с koi8-r это уже будет затруднительно.
> Процессоры и гигабайты уже не проблема.

А экзабайты им.депутата Яровой?....

Ответить | Правка | Наверх | Cообщить модератору

7. "Отказаться от UTF-8"  +2 +/
Сообщение от ыы (?), 07-Авг-17, 13:43 
>> регионе мира. В случае например с koi8-r это уже будет затруднительно.
>> Процессоры и гигабайты уже не проблема.
> А экзабайты им.депутата Яровой?....

Сформированы данными не имеющими к описанной проблеме отношения.

Ответить | Правка | Наверх | Cообщить модератору

8. "Отказаться от UTF-8"  +/
Сообщение от Anonimus (??), 07-Авг-17, 13:46 
>> регионе мира. В случае например с koi8-r это уже будет затруднительно.
>> Процессоры и гигабайты уже не проблема.
> А экзабайты им.депутата Яровой?....

А вот тут тогда вступает закон - а где это смогут прочитать? Без перекодировщиков koi8-r
на Windows прочитать не смогут (а большинство пользователей как раз на ней), а UTF читаема. И опять же на сегодняшний момент большинство программ пишут свои сообщения в UTF, то есть у вас появляются накладные расходы изначального перекодирования UTF -> koi8-r, затем обработка и хранение, а потом опять накладные расходы перекодирования koi8-r -> UTF (для отображения). И не факт что конвертация у вас нормально пройдет (ничего не потеряется, нигде не застопорится).

Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

9. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 07-Авг-17, 17:15 
> в любом регионе мира. В случае например с koi8-r это уже
> будет затруднительно.

Ну, мы им инструкцию в регион зашлём. На utf-8 напишем, чтоб поняли уже наконец проблему нашу.

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

10. "Отказаться от UTF-8"  +1 +/
Сообщение от Andrey Mitrofanov (?), 07-Авг-17, 17:36 
>> в любом регионе мира. В случае например с koi8-r это уже
>> будет затруднительно.
> Ну, мы им инструкцию в регион зашлём. На utf-8 напишем, чтоб поняли
> уже наконец проблему нашу.

У вас там никто задачу сформулировать не может? "если бы, да кабы", "да быстрее/бедленне, да больше/меньше", "да керосина сэкономить/потратить", "да в регионах не поймут/объясним".

Секретное военное оружие -- прямо на поенете дизайните? Или думскую сис-му управления конт-тентами? Или гипертекстовый "Российский" инетернет?  Или просто в поисках чего б "такого" накрутить заказчику...

Вопросы надо задавать не про "вот тут у меня байтики, два или полтора". Задача ставится не так.

Ответить | Правка | Наверх | Cообщить модератору

11. "Отказаться от UTF-8"  +/
Сообщение от Sergey Maslennikov (ok), 07-Авг-17, 17:43 
> байтики, два или полтора

300 АК не хотите? Исходное сообщение читали?

Ответить | Правка | Наверх | Cообщить модератору

15. "Отказаться от UTF-8"  +1 +/
Сообщение от Andrey Mitrofanov (?), 07-Авг-17, 19:08 
>> байтики, два или полтора
> 300 АК не хотите? Исходное сообщение читали?

Архиватор выбирается по "качелям" сжатие/время. Ну, кому, мож, и керосин экономить надо...  Этих разнообразных архиваторов -- десятки.

И _даже_ ключами xz можно весьма разные результаты получать -- сравните на своих карениных xz -1, -3, 5, -5, -1e, -3e, -9e по времени и сжатию.

Откуда у Вас взялось "странное" желание делать архиватор-в-архиваторе (кодировкой "второй байтик" выжимать)? Импортозамещение, "отсель грозить мы будем шведам"??...

Ещё раз: я хочу не 200 или 300 АК-47, а постановки задачи: с таких то ограничекниях надо достичь $того-то.  А, впрочем, не.... зачем оно мне? ...не-не-не, не хочу.

Но чем же было "Импортозамещение" в эмбрионе слегка интересно: "программистские" искривления очень забавны.  Наверное... Я надеюсь.

Ответить | Правка | Наверх | Cообщить модератору

52. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 12:51 
> Этих разнообразных архиваторов -- десятки.

xz был у меня на лаптопе.

> И _даже_ ключами xz можно весьма разные результаты получать -- сравните на
> своих карениных xz -1, -3, 5, -5, -1e, -3e, -9e по
> времени и сжатию.

Ну, я внёс свои две копейки. Могу ещё добавить, что распространённая программка sort сортирует UTF-8 в 1.7 раза медленнее, чем KOI8-R. Другие тоже могли бы что-то в этом направлении сделать, если нужным сочтут.

Ответить | Правка | Наверх | Cообщить модератору

20. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 08:40 
> при наличии шрифтов правильно отобразиться в любом регионе мира.

Согласен с вами. Кириллический текст UTF-8 не отобразится, если в шрифте кириллицы нет. А если есть, то упомянутая вами KOI8-R отобразится быстрее, чем UTF-8, т. к. программа, которая будет отображать, тексты любых исходных кодировок сначала конвертирует в тексты унифицированной кодировки, с которыми потом и будет что-то делать -- отображать, например. Обычно это -- 4-байтная Unicode -- что-то типа UTF-32 (хороша тем, что длина кода не меняется от алфавита к алфавиту). Всё это, однако, нужно доказать.

У меня есть _подозрение_ (не доказательство и даже не утверждение), что конвертация в унифицированное представление и обратно в среднем происходит быстрее, если исходная кодировка однобайтовая (упомянутая вами KOI8-R, например). Подозрение основано на том, что популярные программы из популярного дистрибутива Debian на моём лаптопе конвертируют KOI8-R -> UTF-32 -> KOI8-R быстрее, чем UTF-8 -> UTF-32 -> UTF-8. Основание слабовато, поэтому исходный пост -- это конкретный вопрос (можно ли доказать хотя бы это?), а не то, на что здесь пока пытаются отвечать.

Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

21. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 08-Авг-17, 09:49 
>[оверквотинг удален]
> что-то типа UTF-32 (хороша тем, что длина кода не меняется от
> алфавита к алфавиту). Всё это, однако, нужно доказать.
> У меня есть _подозрение_ (не доказательство и даже не утверждение), что конвертация
> в унифицированное представление и обратно в среднем происходит быстрее, если исходная
> кодировка однобайтовая (упомянутая вами KOI8-R, например). Подозрение основано на том,
> что популярные программы из популярного дистрибутива Debian на моём лаптопе конвертируют
> KOI8-R -> UTF-32 -> KOI8-R быстрее, чем UTF-8 -> UTF-32 ->
> UTF-8. Основание слабовато, поэтому исходный пост -- это конкретный вопрос (можно
> ли доказать хотя бы это?), а не то, на что здесь
> пока пытаются отвечать.

Смутные сомнения терзают меня.

Вот вам строгое доказательство:

Если m -  "байтовость" кодировки (целые числа больше нуля)
и  r- затраты на единичное преобразование одного байта
то m*r для многобайтных кодировок будет больше m*r для однобайтных

Вы этого хотели?
Вы в пятом или четвертом классе учитесь?

Ответить | Правка | Наверх | Cообщить модератору

22. "Отказаться от UTF-8"  +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 10:30 
> Вы в пятом или четвертом классе учитесь?

А что, если бы я в четвёртом классе учился, вы не стали бы со мной разговаривать?

Вот недавно физтеховские школьники выиграли международную олимпиаду по физике -- каждый взял высшую медаль. Смогли бы вы обыграть этих "детишек" в решении задач, а пусть даже, по программированию?

> Вот вам строгое доказательство

И вот смотрите. utf-8, вообще говоря, кодировка переменной длины. Вероятно, алгоритм, который разбирает текст в ней, не знает какой длины придёт к нему следующий код. Где это в вашем "доказательстве"?

> Вы этого хотели?

Не совсем.

Ответить | Правка | Наверх | Cообщить модератору

23. "Отказаться от UTF-8"  +1 +/
Сообщение от Andrey Mitrofanov (?), 08-Авг-17, 11:15 
> Вот недавно физтеховские школьники выиграли международную олимпиаду по физике -- каждый
> взял высшую медаль. Смогли бы вы обыграть этих "детишек" в решении
> задач, а пусть даже, по программированию?

Ладно, рассказывай:

* в каком классе / на каком курсе учишься, по какой специальности / безработный / на каникулах / на какой должности работаешь
  + форум, кажется, тут занят удалённым "программированием" с не-программистом, я наконец получу ответ хоть на один вопрос?? //да, кстати, я не программист и не буду таковым по должности: образование не позволяет. но кидане пальцами коллегами "по не-цеху" изучаю с интересом!

* откуда взял интересные мысли из первого поста -- неужели сам придумал?!

* что сказал начальник / воспитательница мариванна / мама-папа, прочитав первый пост? если не читал(а) -- дай прочитать, сказанное внимательно запиши?

* знаком ли ты лично с "физтеховскими школьниками" и какое отношение имеешь к их Победе? Какое отношение имеет их Победа к твоим полутора-байтным затруднениям из первого поста? Обоснуй.

Ответить | Правка | Наверх | Cообщить модератору

26. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 15:36 
> знаком ли ты лично с "физтеховскими школьниками"

Нет.

> какое отношение имеешь к их Победе?

Завидую.

> Какое отношение имеет их Победа к

предположению о моём классе (4-м или 5-м)?

Мне кажется, что эти товарищи могли бы "навалять" ыы, как, впрочем, и мне в решении задач по программированию, несмотря на то, что они моложе нас. Использовать для принижения сравнение со школьником неправильно -- нужно какое-то другое.

Ответить | Правка | Наверх | Cообщить модератору

27. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 15:41 
> удалённым "программированием" с не-программистом

Да, верно.

Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

24. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 08-Авг-17, 11:33 
>> Вы в пятом или четвертом классе учитесь?
> А что, если бы я в четвёртом классе учился, вы не стали
> бы со мной разговаривать?

Ваш вопрос - бестолковый. Очевидно же что преобразование многобайтной кодировки может занимать на конкретном железе большее время просто потому что в многобайтной кодировке- больше байт. Объем лядь, данных больше для переработки И ПОЭТОМУ лять, оно обрабатывается дольше. Строгое доказательство -  m(многобайтная)*r > m(однообайтная)*r
Например 4*1 > 1*1  поскольку проведя умножение получим  4>1

НО! На конкретном железе. Поскольку в зависимости от железа - обработку многобайтных данных можно сделать столь же быстрой как и однобайтных. Например можно реализовать в железе любую операцию такого преобразования за один такт. И тогда ваш тест показал бы  что конвертация строк из многобайтных символов занимают не больше времени чем если бы  символы были однобайтные.. и вы долго думали бы почему.

Такой вопрос мог бы задать школьник...
Ответ на ваш вопрос- элементарен, банален,
Суть вашего вопроса - наивна и бестолкова.

А разница в том учитесь ли вы в школе или уже серьезный дядечка мучающийся бездельем - в том, что если относится к вашему вопросу серьезно- то он вообще говоря странный.
Но если вы школьник- то такой бестолковый вопрос в общем... ну.. формулу строгого доказательства я вам привел.

> Вот недавно физтеховские школьники выиграли международную олимпиаду по физике -- каждый
> взял высшую медаль. Смогли бы вы обыграть этих "детишек" в решении
> задач, а пусть даже, по программированию?

Вы из их числа?
Надеюсь они не стали бы задавать тот вопрос что задали вы :)

>> Вот вам строгое доказательство
> И вот смотрите. utf-8, вообще говоря, кодировка переменной длины. Вероятно, алгоритм, который
> разбирает текст в ней, не знает какой длины придёт к нему
> следующий код. Где это в вашем "доказательстве"?

Ну, скажу что у вас плохо с абстрактным мышлением. Для доказательства - переменная длинна или постоянная  - не имеет значения.

Для каждой любой итерации - m(многобайт)*r > m(одинбайт)*r
Любое ваше надуманное "доказательство путем перепаковки АК" упрется в эту формулу.

Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

28. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 17:00 
> Для каждой любой итерации - m(многобайт)*r > m(одинбайт)*r

m(многобайт)*r >= m(одинбайт)*r

Вы, конечно, можете считать меня сволочью и недоумком, но мне нужна была референсная нитка о том, что двуязычные кодировки могут иметь такое же право на существование, как UTF-8, и я её с вашей помощью сделал.

Ответить | Правка | Наверх | Cообщить модератору

30. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 08-Авг-17, 17:31 
>> Для каждой любой итерации - m(многобайт)*r > m(одинбайт)*r
> m(многобайт)*r >= m(одинбайт)*r
> Вы, конечно, можете считать меня сволочью и недоумком, но мне нужна была
> референсная нитка о том, что двуязычные кодировки могут иметь такое же
> право на существование, как UTF-8, и я её с вашей помощью
> сделал.

m(многобайт)*r > m(одинбайт)*r

Ответить | Правка | Наверх | Cообщить модератору

32. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 17:37 
> m(многобайт)*r > m(одинбайт)*r

Я имел в виду, что английские буквы, запятые, пробелы и знаки всякие в многобайтной кодировке одним байтом кодированы. Если текст состоит только из них, то

m(многобайт)*r == m(одинбайт)*r

Ответить | Правка | Наверх | Cообщить модератору

36. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 08-Авг-17, 18:29 
>> m(многобайт)*r > m(одинбайт)*r
> Я имел в виду, что английские буквы, запятые, пробелы и знаки всякие
> в многобайтной кодировке одним байтом кодированы. Если текст состоит только из
> них, то
> m(многобайт)*r == m(одинбайт)*r

Нет

m(многобайт)*r > m(одинбайт)*r

Уясните наконец как выглядит текст в многобайтной кодировке и не занимайтесь фантазированием.

Ответить | Правка | Наверх | Cообщить модератору

37. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 18:39 
> Уясните наконец как выглядит текст в многобайтной кодировке и не занимайтесь фантазированием.

The first 128 characters of Unicode, which correspond one-to-one with ASCII, are encoded using a single octet with the same binary value as ASCII, so that valid ASCII text is valid UTF-8-encoded Unicode as well [1].

[1] https://en.wikipedia.org/wiki/UTF-8

Ответить | Правка | Наверх | Cообщить модератору

38. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 08-Авг-17, 18:57 
>> Уясните наконец как выглядит текст в многобайтной кодировке и не занимайтесь фантазированием.
> The first 128 characters of Unicode, which correspond one-to-one with ASCII, are
> encoded using a single octet with the same binary value as
> ASCII, so that valid ASCII text is valid UTF-8-encoded Unicode as
> well [1].
> [1] https://en.wikipedia.org/wiki/UTF-8

Откройте Notepad
напечатайте букву a (английскую)
сохраните как utf-8
снова сохраните как ansi

откройте проводник и сравните размер файлов..
Крепко задумайтесь, той ли работой вы занимаетесь.

Ответить | Правка | Наверх | Cообщить модератору

39. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 19:03 
> Откройте Notepad

Ой.

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

40. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 09:10 
> Откройте Notepad

Этот ваш Notepad, видимо, что-то специальное для программистов. У нас-то, простых людей, таких программ нет. Уж, звиняйте.

> напечатайте букву a (английскую)
> сохраните как utf-8
> снова сохраните как ansi

А вы не могли бы добавить к букве 'a' ещё буковку 'b' и сообщить нам насколько поменяется длина файла?

Ну, или, -- написать нам сюда коды из вашего файла с буковкой 'a' в исчислении с удобным для вас основанием? -- мы тогда расскажем, что там с вашим Notepad-ом не так.

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

41. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 09-Авг-17, 10:20 
>> Откройте Notepad
> Этот ваш Notepad, видимо, что-то специальное для программистов. У нас-то, простых людей,
> таких программ нет. Уж, звиняйте.

Это ваши проблемы. Не мои :)

>> напечатайте букву a (английскую)
>> сохраните как utf-8
>> снова сохраните как ansi
> А вы не могли бы добавить к букве 'a' ещё буковку 'b'
> и сообщить нам насколько поменяется длина файла?

на 1 байт естественно. А вы ожидали чегото еще?

> Ну, или, -- написать нам сюда коды из вашего файла с буковкой
> 'a' в исчислении с удобным для вас основанием? -- мы тогда
> расскажем, что там с вашим Notepad-ом не так.

Сомневаюсь что вы понимаете о чем говорите.

Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

42. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 10:26 
> на 1 байт естественно. А вы ожидали чегото еще?

Ну, тогда в любой кодировке байтовость одинаковая. Или как?

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

44. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 09-Авг-17, 11:04 
>> на 1 байт естественно. А вы ожидали чегото еще?
> Ну, тогда в любой кодировке байтовость одинаковая. Или как?

Интересная мысль :)

Без указания BOM - и при наличии только английских букв - вам не удастся доказать что используемая кодировка - UTF-8.

Хотя.. можете попробовать :)

Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

45. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 11:10 
> Без указания BOM - и при наличии только английских букв - вам
> не удастся доказать что используемая кодировка - UTF-8.
> Хотя.. можете попробовать :)

Очень просто.

The first 128 characters of Unicode, which correspond one-to-one with ASCII, are encoded using a single octet with the same binary value as ASCII, so that valid ASCII text is valid UTF-8-encoded Unicode as well [1].

Если она ASCII, то она же и UTF-8. Можно наоборот, если хотите :)

BOM не обязательна при хранении и обработке текста.

[1] https://en.wikipedia.org/wiki/UTF-8


Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

51. "Отказаться от UTF-8"  +1 +/
Сообщение от ыы (?), 09-Авг-17, 12:51 
> Если она ASCII, то она же и UTF-8. Можно наоборот, если хотите
> :)

Человеку у которого ASCII она же UTF-8 и наоборот - сам черт не брат...

Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

54. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 12:55 
> Человеку у которого ASCII она же UTF-8 и наоборот - сам черт
> не брат...

Согласен. Это он эту ... UTF-8 придумал ...


Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

72. "Отказаться от UTF-8"  –1 +/
Сообщение от Аноним (-), 11-Авг-17, 08:09 
>Без указания BOM - и при наличии только английских букв
>- вам не удастся доказать что используемая кодировка - UTF-8.
>Человеку у которого ASCII она же UTF-8 и наоборот - сам черт
>не брат...

Здается мне, что вы оба не рограммисты. BOM - это Byte Order Mask. Вы бы хоть иногда в википедию заглядывали https://en.wikipedia.org/wiki/Byte_order_mark. Ясно же написано, что она опциональна "BOM use is optional". В вашем случае ее вставил notepad. Если создать файл echo -n a > test, то он будет совершенно одинаков в UTF-8, ASCII и даже WINDOWS-1251. Для английских букв ASCII и UTF-8 совершенно идентичны.

Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

74. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 11-Авг-17, 09:25 
>>Без указания BOM - и при наличии только английских букв
>>- вам не удастся доказать что используемая кодировка - UTF-8.
>>Человеку у которого ASCII она же UTF-8 и наоборот - сам черт
>>не брат...
> Здается мне, что вы оба не рограммисты. BOM - это Byte Order
> Mask. Вы бы хоть иногда в википедию заглядывали https://en.wikipedia.org/wiki/Byte_order_mark.
> Ясно же написано, что она опциональна "BOM use is optional". В
> вашем случае ее вставил notepad. Если создать файл echo -n a
> > test, то он будет совершенно одинаков в UTF-8, ASCII и
> даже WINDOWS-1251. Для английских букв ASCII и UTF-8 совершенно идентичны.

Правильно. ПОЭТОМУ говорить что у вас UTF-8 имея только английские буквы - нельзя. Нет оснований считать что у вас многобайтная кодировка. Она у вас любая а не многобайтная.

Доказать что вы используете многобайтную кодировку вы можете только если пометите ее BOM или используете буквы этой кодировки непосредственно.

Ответить | Правка | К родителю #72 | Наверх | Cообщить модератору

75. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 11-Авг-17, 09:35 
> используете буквы этой кодировки непосредственно.

Имеется ввиду многобайтные буквы...

Ответить | Правка | К родителю #74 | Наверх | Cообщить модератору

76. "Отказаться от UTF-8"  –1 +/
Сообщение от Аноним (-), 11-Авг-17, 09:39 
> Правильно. ПОЭТОМУ говорить что у вас UTF-8 имея только английские буквы -
> нельзя. Нет оснований считать что у вас многобайтная кодировка. Она у
> вас любая а не многобайтная.
> Доказать что вы используете многобайтную кодировку вы можете только если пометите ее
> BOM или используете буквы этой кодировки непосредственно.

Извините, но Вы написали глупость полнейшую. Во-первых задача не требует этого доказательства. Вы же знаете в какой кодировке записаны ваши файлы. Вы не использовали никакую другую кроме UTF-8. Во-вторых, что это за приём в доказательстве -помечать текст BOM. Это ничего не дает а только усложняет его.

Ответить | Правка | К родителю #74 | Наверх | Cообщить модератору

78. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 11-Авг-17, 09:52 
>> Правильно. ПОЭТОМУ говорить что у вас UTF-8 имея только английские буквы -
>> нельзя. Нет оснований считать что у вас многобайтная кодировка. Она у
>> вас любая а не многобайтная.
>> Доказать что вы используете многобайтную кодировку вы можете только если пометите ее
>> BOM или используете буквы этой кодировки непосредственно.
> Извините, но Вы написали глупость полнейшую. Во-первых задача не требует этого доказательства.

Требует.
m(многобайт)*r > m(одинбайт)*r


> Вы же знаете в какой кодировке записаны ваши файлы.

Нет. Пока вы не прочитали файлы- вы этого не знаете.
m(многобайт)*r > m(одинбайт)*r

> Вы не использовали никакую другую кроме UTF-8.

но утверждать что то что вы считываете на основании получившегося содержимого - вы не можете. такой вот парадокс :)

m(многобайт)*r > m(одинбайт)*r

> Во-вторых, что это за приём в
> доказательстве -помечать текст BOM. Это ничего не дает а только усложняет
> его.

Чтобы утверждать (в строгом смысле) что вы работаете с многобайтной кодировкой- вы должны это доказать.

Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

79. "Отказаться от UTF-8"  +/
Сообщение от Аноним (-), 11-Авг-17, 10:01 
> Чтобы утверждать (в строгом смысле) что вы работаете с многобайтной кодировкой- вы
> должны это доказать.

Вы даже не понимаете какую чушь Вы несете. Если Вы возьмете файл в WINDOWS-1251 и допишете в него BOM он станет UTF-8 что ли. Это ваше доказательство?

Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

80. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 11-Авг-17, 10:09 
>> Чтобы утверждать (в строгом смысле) что вы работаете с многобайтной кодировкой- вы
>> должны это доказать.
> Вы даже не понимаете какую чушь Вы несете. Если Вы возьмете файл
> в WINDOWS-1251 и допишете в него BOM он станет UTF-8 что
> ли. Это ваше доказательство?

А вы попробуйте :)


Ответить | Правка | К родителю #79 | Наверх | Cообщить модератору

81. "Отказаться от UTF-8"  +/
Сообщение от Аноним (-), 11-Авг-17, 10:15 
>>> Чтобы утверждать (в строгом смысле) что вы работаете с многобайтной кодировкой- вы
>>> должны это доказать.
>> Вы даже не понимаете какую чушь Вы несете. Если Вы возьмете файл
>> в WINDOWS-1251 и допишете в него BOM он станет UTF-8 что
>> ли. Это ваше доказательство?
> А вы попробуйте :)

А вот от ответа уходить не надо. Отвечайте за свои слова. Станет или не станет?

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

82. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 11-Авг-17, 10:27 
>>>> Чтобы утверждать (в строгом смысле) что вы работаете с многобайтной кодировкой- вы
>>>> должны это доказать.
>>> Вы даже не понимаете какую чушь Вы несете. Если Вы возьмете файл
>>> в WINDOWS-1251 и допишете в него BOM он станет UTF-8 что
>>> ли. Это ваше доказательство?
>> А вы попробуйте :)
> А вот от ответа уходить не надо. Отвечайте за свои слова. Станет
> или не станет?

А я не ухожу. Вы попробуйте прежде чем болтать ерунду.

Ответить | Правка | К родителю #81 | Наверх | Cообщить модератору

84. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 11-Авг-17, 10:33 
>>>> Чтобы утверждать (в строгом смысле) что вы работаете с многобайтной кодировкой- вы
>>>> должны это доказать.
>>> Вы даже не понимаете какую чушь Вы несете. Если Вы возьмете файл
>>> в WINDOWS-1251 и допишете в него BOM он станет UTF-8 что
>>> ли. Это ваше доказательство?
>> А вы попробуйте :)
> А вот от ответа уходить не надо. Отвечайте за свои слова. Станет
> или не станет?

Вы глубоко невежественны в предмете разговора.Извините.
Ответ: с точки зрения ПО которое этот файл будет читать - станет.
В этом легко убедится проведя опыт с тем же Notepad.
Что я собственно вам и посоветовал. Вам бы стоило СПЕРВА провести опыт а потом.. писать сюда глупости.

Но дело деже не в этом.  Дело в том, что когда у вас есть два файла, кодировку которых вы не знаете, установить какая она там- можно только прочитав эти файлы и подобрав подходящую кодировку по смыслу.
и BOM в начале файла-это один из признаков по которому нам следует отнести содержимое файла к кодированному по UTF-8.

Ответить | Правка | К родителю #81 | Наверх | Cообщить модератору

85. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 11-Авг-17, 10:38 
>[оверквотинг удален]
> Ответ: с точки зрения ПО которое этот файл будет читать - станет.
> В этом легко убедится проведя опыт с тем же Notepad.
> Что я собственно вам и посоветовал. Вам бы стоило СПЕРВА провести опыт
> а потом.. писать сюда глупости.
> Но дело деже не в этом.  Дело в том, что когда
> у вас есть два файла, кодировку которых вы не знаете, установить
> какая она там- можно только прочитав эти файлы и подобрав подходящую
> кодировку по смыслу.
> и BOM в начале файла-это один из признаков по которому нам следует
> отнести содержимое файла к кодированному по UTF-8.

То есть человек, утверждающий что я ( Я!!! хаха :) ) говорю глупости, просто не понимает что в файлах - нет кодировки. там есть только поток байт, и кодировка- это инструмент интерпретации этого потока байт... И принимаем мы решение какая там кодировка- только попробовав понять что там...

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

86. "Отказаться от UTF-8"  +/
Сообщение от Аноним (-), 11-Авг-17, 10:59 
> я ( Я!!! хаха :) ) говорю глупости

Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет WINDOWS-1251 текст UTF-8 или нет, если вставить BOM.

Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

87. "Отказаться от UTF-8"  –2 +/
Сообщение от ыы (?), 11-Авг-17, 11:14 
>> я ( Я!!! хаха :) ) говорю глупости
> Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет
> WINDOWS-1251 текст UTF-8 или нет, если вставить BOM.

Разве спокойно и вежливо объяснять невежественному человеку его заблуждения- это позорно?
Вы не понимаете очень важных вещей в том предмете, который пытаетесь обсуждать.
Например вы не понимаете что в файлах - кодировки нет.
Текст сохраненный вами в одной кодировке- может быть прочитан другим человеком В ДРУГОЙ кодировке. И это нормально.
Демонстрацию этого я вам приводил.
Даже прямым текстом отвечал.
А вы проигнорировав мой прямой ответ снова его требуете.
Следовательно - вы троль.

Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

89. "Отказаться от UTF-8"  +/
Сообщение от Аноним (-), 11-Авг-17, 11:28 
>>> я ( Я!!! хаха :) ) говорю глупости
>> Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет
>> WINDOWS-1251 текст UTF-8 или нет, если вставить BOM.
> А вы проигнорировав мой прямой ответ снова его требуете.
> Следовательно - вы троль.

Троль -это тот, кто на простые вопросы не отвечает. На ваш "ответ" Вы вопрос получили. Следовательно троль -вы.

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

90. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 11-Авг-17, 11:34 
>>>> я ( Я!!! хаха :) ) говорю глупости
>>> Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет
>>> WINDOWS-1251 текст UTF-8 или нет, если вставить BOM.
>> А вы проигнорировав мой прямой ответ снова его требуете.
>> Следовательно - вы троль.
> Троль -это тот, кто на простые вопросы не отвечает. На ваш "ответ"
> Вы вопрос получили. Следовательно троль -вы.

Вот мой ответ (http://www.opennet.me/openforum/vsluhforumID1/96963.html#84):

"Ответ: с точки зрения ПО которое этот файл будет читать - станет."
И объяснено почему.


Вот ваш вопрос в ответ на мой ответ:

"Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет WINDOWS-1251 текст UTF-8 или нет, если вставить BOM.
"


Ответить | Правка | К родителю #89 | Наверх | Cообщить модератору

91. "Отказаться от UTF-8"  +/
Сообщение от Аноним (-), 11-Авг-17, 11:42 
>>>>> я ( Я!!! хаха :) ) говорю глупости
>>>> Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет
> "Ответ: с точки зрения ПО которое этот файл будет читать - станет."

Вы что, в пятом классе учитесь, какая у ПО может быть точка зрения?

Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

92. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 11-Авг-17, 11:53 
>>>>>> я ( Я!!! хаха :) ) говорю глупости
>>>>> Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет
>> "Ответ: с точки зрения ПО которое этот файл будет читать - станет."
> Вы что, в пятом классе учитесь, какая у ПО может быть точка
> зрения?

Когда вы подрастете, и возможно все таки окончите школу, и возможно сможете поступить в высшее учебное заведение, и даже, чем черт не шутит попадете на предмет который называется "русский язык"....
Не исключено, что вам объяснят что такое "переносное употребление форм глагола".
Хотя по и идее, должны были вам уже это объяснить но вы вероятно на урок не явились раз моя фраза  ввела вас в такое состояние :)

Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

93. "Отказаться от UTF-8"  –1 +/
Сообщение от Аноним (-), 11-Авг-17, 12:06 
> "переносное употребление форм глагола"

Какого глагола форм? Уверен, что вы их не знаете, как не знаете о чем пишете и никогда не слышали о том, что такое доказательство.

Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

88. "Отказаться от UTF-8"  +/
Сообщение от Andrey Mitrofanov (?), 11-Авг-17, 11:17 
> Не позорьтесь. Вернитесь к вопросу и спокойно ответьте без Ваших мантр станет
> WINDOWS-1251 текст UTF-8 или нет, если вставить BOM.

:+)))  А вот такой вот роезультат -

  File "/usr/lib64/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf0 in position 20:
invalid continuation byte

считаем, как "стал" или "не слал"?

Не, там не с BOM-ом дело было. Так, на всякий, "уточняю" $) вопрос.

--По строгим правилам гольфа? --But of course!

Ответить | Правка | К родителю #86 | Наверх | Cообщить модератору

47. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 11:41 
> Интересная мысль :)
> ... BOM ...

И вот, кстати, заметьте, Notepad оказался не моей проблемой.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

53. "Отказаться от UTF-8"  +1 +/
Сообщение от ыы (?), 09-Авг-17, 12:51 
>> Интересная мысль :)
>> ... BOM ...
> И вот, кстати, заметьте, Notepad оказался не моей проблемой.

Вы просто не поняли сути проблемы.

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

43. "Отказаться от LSD-8"  –1 +/
Сообщение от Andrey Mitrofanov (?), 09-Авг-17, 10:32 
> Сомневаюсь что вы понимаете о чем говорите.

Во, об этом и была она, "но мне нужна была референсная нитка о том".

Тред - памятник себе.

/?https://duckduckgo.com/?q=%D0%BA%D0%B0&#...

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

46. "Отказаться от LSD-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 11:26 
> Тред - памятник себе.

Ну, а чего, пусть сходят, посмотрят. Вам, вот, интересно же.

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

56. "Отказаться от LSD-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 20:51 
Про памятник, всё-таки, вы со зла. В организации, где я работаю, есть небольшая инфраструктура с почтой, среверами, много чем самописным, которую поддерживает 2 непрофессионала (как и вы, может быть). И тот второй насчёт перекодирования в UTF-8 говорит примерно то же, что и все. То, что мы делаем по профессии, включает программирование, но русский язык там не нужен, а вот в инфраструктуре -- да, много чего в разных кодировках, включая UTF-8. И мы ничего с этим не делали бы, но повсеместная агитация за повсеместную UTF-8 понятно к чему приведёт (ну, opennet.ru придётся на неё переключить, например). Вот я и решил сделать референсную тему, в которой другие участники (не я) могли бы квалифицированно объяснить недостатки UTF-8. Тогда любому можно было бы сказать, что так думаю не я, а совсем другие люди, что гораздо убедительнее. Ну, да, я завяз, получилось плохо. Уж извините.

Намерение вбросить идею о том, что не нужно так уж сильно агитировать за повсеместность UTF-8, тоже было, конечно.

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

58. "Отказаться от LSD-8"  –1 +/
Сообщение от ыы (?), 10-Авг-17, 07:40 
>[оверквотинг удален]
> не нужен, а вот в инфраструктуре -- да, много чего в
> разных кодировках, включая UTF-8. И мы ничего с этим не делали
> бы, но повсеместная агитация за повсеместную UTF-8 понятно к чему приведёт
> (ну, opennet.ru придётся на неё переключить, например). Вот я и решил
> сделать референсную тему, в которой другие участники (не я) могли бы
> квалифицированно объяснить недостатки UTF-8. Тогда любому можно было бы сказать, что
> так думаю не я, а совсем другие люди, что гораздо убедительнее.
> Ну, да, я завяз, получилось плохо. Уж извините.
> Намерение вбросить идею о том, что не нужно так уж сильно агитировать
> за повсеместность UTF-8, тоже было, конечно.

Шел 2017 год. В космосе летала вторая китайская космическую станция.
Некоторые представители памятников продолжали бороться за революционный вопрос - КОИ или UTF.

Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

59. "Отказаться от LSD-8"  +2 +/
Сообщение от Sergey Maslennikov (ok), 10-Авг-17, 08:04 
> представители памятников продолжали бороться

Снова начали :)

> за революционный вопрос - КОИ или UTF.

Но, всё-таки, раньше боролись за КОИ, а теперь за вопрос. Его и задать-то почти невозможно. И не против UTF.

Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

101. "Отказаться от UTF-8"  +/
Сообщение от Anonymoustus (ok), 03-Окт-17, 05:31 
> мне нужна была референсная нитка о том, что двуязычные кодировки могут иметь такое же право на существование, как UTF-8, и я её с вашей помощью сделал.

Мама дорогая, это ж какое-то просто безумие.

Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

5. "Отказаться от UTF-8"  +/
Сообщение от ыы (?), 07-Авг-17, 13:05 
>> ... условие (распаковка) - надуманно
> А понимаешь, если не паковать, то ответ тривиален. В случае русского языка
> UTF-8 уступает вдвое любой распространённой двуязычной кодировке по занимаемому месту
> на диске и энергозатратам на копирование и передачу. Ты можешь почитать
> об этом, например, в Википедии [1] или здесь же [2].
> Причина в том, что в распакованном виде в UTF-8 русским буквам отведены
> 2-байтные коды в отличие от английских и большей части букв западноевропейских
> языков, которые записывают 1-байтными кодами.
> [1] https://en.wikipedia.org/wiki/UTF-8#Comparison_with_single-b...
> [2] https://www.opennet.me/openforum/vsluhforumID1/51935.html

UTF-8 придумана не для того чтобы обеспечить максимально быстрое исполнение или минимальный размер файлов. Вы смотрите только на одну сторону большой комплексной проблемы.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

12. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 07-Авг-17, 17:50 
> UTF-8 придумана не для того чтобы обеспечить максимально быстрое
> исполнение или минимальный размер файлов.

А что, люди ни этого ли хотят?

На размер запакованного файла выбор кодировки влияет слабо, а максимально быстрой, предположительно, окажется обработка английского текста. Получается, что если сидеть на одной лишь UTF-8, то для английского языка оптимальная кодировка существует, а для русского -- нет.

> Вы смотрите только на одну сторону большой комплексной проблемы.

А больше пока некуда смотреть. Если окажется, что в тестах UTF-8 не уступает 1-байтным кодировкам, или это можно доказать, то и проблемы нет. Тогда только UTF-8.

Или, о какой проблеме вы пишете?

Ответить | Правка | Наверх | Cообщить модератору

16. "Отказаться от UTF-8"  –1 +/
Сообщение от ыы (?), 07-Авг-17, 19:12 
>> UTF-8 придумана не для того чтобы обеспечить максимально быстрое
>> исполнение или минимальный размер файлов.
> А что, люди ни этого ли хотят?

представьте себе....
Люди -хотят как правило работать поменьше и получать побольше. И железо- дешевле труда программистов.

Поэтому если одой кодировкой можно решить проблему на сотне языков - то следует выбрать такую кодировку, а не изобретать и потом реализовывать сотню 8-ми битных кодировок.
Это элементарно...

> На размер запакованного файла выбор кодировки влияет слабо, а максимально быстрой, предположительно,
> окажется обработка английского текста. Получается, что если сидеть на одной лишь
> UTF-8, то для английского языка оптимальная кодировка существует, а для русского
> -- нет.
>> Вы смотрите только на одну сторону большой комплексной проблемы.
> А больше пока некуда смотреть. Если окажется, что в тестах UTF-8 не
> уступает 1-байтным кодировкам, или это можно доказать, то и проблемы нет.
> Тогда только UTF-8.
> Или, о какой проблеме вы пишете?

О выборе решения для ИТ-инфраструктуры. Незначительное уменьшение скорости обработки (ваши 300 АК- абсолютно высосанный из пальца пример , отвлеченный и взятый с потолка. и никому ненужный и ничего не доказывающий.) - не является решающим фактором в подавляющем большинстве ИТ инфраструктур.
И вам имхо стоит заняться реальными проблемами а не тем чем занимается руководящий работник когда ему делать нечего...

Ответить | Правка | Наверх | Cообщить модератору

31. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 17:31 
> представьте себе....
> Люди -хотят как правило работать поменьше и получать побольше. И железо- дешевле
> труда программистов.

Верно, но людей больше, чем программистов.

Ответить | Правка | Наверх | Cообщить модератору

33. "Отказаться от UTF-8"  –1 +/
Сообщение от Andrey Mitrofanov (?), 08-Авг-17, 17:44 
>> представьте себе....
>> Люди -хотят как правило работать поменьше и получать побольше. И железо- дешевле
>> труда программистов.
> Верно, но людей больше, чем программистов.

Вы хотели сказать, программисты не люди?

Ответить | Правка | Наверх | Cообщить модератору

34. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 17:51 
> Вы хотели сказать, программисты не люди?

N_людей-непрограммистов + N_людей-программистов >> N_людей-программистов

N_людей-непрограммистов + N_людей-программистов == N_людей

-- вот их и больше :)

Ответить | Правка | Наверх | Cообщить модератору

35. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 08-Авг-17, 17:57 
> Вы хотели сказать, программисты не люди?

Программистам нужно, чтобы они кому-нибудь были нужны. Ну, т.е., им пришлось бы считаться с остальными.

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

17. "Отказаться от UTF-8"  +/
Сообщение от Andrey Mitrofanov (?), 07-Авг-17, 19:14 
>для английского языка оптимальная кодировка существует, а для русского
> -- нет.

"Оптимальная" по каким параметрам?? ??"Желаю, чтобы всем!"(ц)ШариковПП

Преждевременная обоюдоострая посконно-хлебосольно-пезанская Оптимизация всея трафика куда-то туда?

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

49. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 12:30 
> "Оптимальная" по каким параметрам?? ??"Желаю, чтобы всем!"(ц)ШариковПП

По времени обработки.

Ответить | Правка | Наверх | Cообщить модератору

50. "Отказаться от UTF-8"  +/
Сообщение от Andrey Mitrofanov (?), 09-Авг-17, 12:46 
>> "Оптимальная" по каким параметрам?? ??"Желаю, чтобы всем!"(ц)ШариковПП
> По времени обработки.

Посмотрите memcpy().

Ответить | Правка | Наверх | Cообщить модератору

55. "Отказаться от UTF-8"  +1 +/
Сообщение от Sergey Maslennikov (ok), 09-Авг-17, 13:06 
> Посмотрите memcpy().

А зачем? -- она не имеет отношения к разбору текста, только куски целиком копирует. И в какое её место смотреть?

Ответить | Правка | Наверх | Cообщить модератору

95. "Отказаться от UTF-8: memcpy()"  +2 +/
Сообщение от Sergey Maslennikov (ok), 23-Авг-17, 17:04 
> Посмотрите memcpy().

Неправильно я ответил. Смысл посмотреть на memcpy() есть, если предположить, что кто-то решился бы копировать внутри программ однобайтно-кодированную кириллицу. В этом случае копирование произошло бы примерно в 1.75 раза быстрее, чем копирование того же текста в UTF-8 [1].

Функция memcpy() может быть по разному реализована, но в реализациях, которые я видел, ожидаемое время копирования должно быть пропорционально размеру копируемых данных. В UTF-8 текст в 1.75 раза длиннее, чем в KOI8-R -- вот и копирует memcpy() его во столько же раз дольше. Это же соотношение можно получить экспериментально [2].

Возможно, я не уловил суть или цель совета использовать memcpy() при оптимизации путём выбора кодировки.

Ссылки / сноски:
[1] -- если копировать тот же текст, что упомянут в исходном посте;
[2] Экспериментальная программка -- обёртка, которую я собираюсь изредка применять для тестирования функций ICU. Здесь в качестве примера тестируемой функции я вставил memcpy():

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <unicode/utypes.h>
#include <unicode/ucnv.h>

long delta_t(struct timespec *start, struct timespec *end)
{
    time_t sec; long nsec;
    if ((end->tv_nsec-start->tv_nsec)<0) {
        sec = end->tv_sec-start->tv_sec-1;
        nsec = 1000000000+end->tv_nsec-start->tv_nsec;
    } else {
        sec = end->tv_sec-start->tv_sec;
        nsec = end->tv_nsec-start->tv_nsec;
    }
    return sec * 1000000000l + nsec;
}

int main()
{
  const char fnm_initial[] = "../../anna-karenina";
  FILE *fini = fopen(fnm_initial, "r");
  if (fini == NULL) {
    fprintf(stderr, "Can't open initial file.\n");
    return -1;
  }
  fseek(fini, 0L, SEEK_END);
  unsigned long len = ftell(fini), size = len + 1ul;
  fseek(fini, 0L, SEEK_SET);
  printf("Allocate %lu bytes to copy file \"%s\" ... ", size, fnm_initial); fflush(stdout);
  char *text_koi8 = malloc(size);
  if (text_koi8 == NULL) {
    fclose(fini);
    fprintf(stderr, "Can't allocate memory for \"text_koi8\".\n");
    return -2;
  }
  printf("Done.\n"); fflush(stdout); /* Allocated */
  if(fread(text_koi8, 1ul, len, fini) != len) {
    free(text_koi8);
    fclose(fini);
    fprintf(stderr, "Can't read file \"%s\" into the buffer.\n", fnm_initial);
    return -3;
  }
  fclose(fini);
  text_koi8[len] = '\x0';
  UErrorCode uerr = U_ZERO_ERROR;
  /* Here it is the example of the UTF-8 buffer exact size evaluation. It is however faster
     to allocate 2 * len + 1ul long buffer instaed and shrink it, after converting,
     by realloc() to the value returned by ucnv_convert(). */
  unsigned long size_u8 = ucnv_convert("UTF-8", "KOI8-R", NULL, 0ul, text_koi8, size, &uerr);
  if( uerr != U_BUFFER_OVERFLOW_ERROR &&
      uerr != U_STRING_NOT_TERMINATED_WARNING &&
      U_FAILURE(uerr) ) {
    free(text_koi8);
    fclose(fini);
    fprintf(stderr, "Can't evaluate UTF-8 text buffer size.\n");
    return -4;
  }
  printf("UTF-8 text buffer size = %lu bytes.\n", size_u8);
  char *text_utf8 = malloc(size_u8);
  if( text_koi8 == NULL ) {
    free(text_koi8);
    fclose(fini);
    fprintf(stderr, "Can't allocate memory for text_utf8.\n");
    return -5;
  }
  uerr = U_ZERO_ERROR;
  ucnv_convert("UTF-8", "KOI8-R", text_utf8, size_u8, text_koi8, size, &uerr);
  if( U_FAILURE(uerr) ) {
    free(text_utf8); free(text_koi8);
    fclose(fini);
    fprintf(stderr, "Error converting KOI8-R text into UTF-8 text.\n");
    return -6;
  }
  /* At this point we have two buffers with the same text in koi8-r and utf-8. */
  /* Prepare for measurements */
  char *text_koi8_a = malloc(size);
  if( text_koi8_a == NULL ) {
    free(text_utf8); free(text_koi8); fclose(fini);
    fprintf(stderr, " Can't allocate memory for \"text_koi8_a\".\n");
    return -7;
  }
  char *text_utf8_a = malloc(size_u8);
  if( text_utf8_a == NULL ) {
    free(text_koi8_a); free(text_utf8); free(text_koi8); fclose(fini);
    fprintf(stderr, "Can't allocate memory for \"text_utf8_a\".\n");
    return -8;
  }
  /* Buffers to copy into are ready here. */
  unsigned long i;
  struct timespec t0, t1;
  long Dt_call, Dt_koi8, Dt_utf8,
       Dt_koi8_total = 0ul, Dt_utf8_total = 0ul;
  double Dt_utf8_to_Dt_koi8;
  for(i = 0; i < 220ul; i++) {
    printf("------------- i = %lu -------------\n", i);
    /* Estimation of time for the function call itself (with copying
       negligibly small amount of data -- 1 byte) */
    clock_gettime(CLOCK_MONOTONIC, &t0);
    memcpy(text_koi8_a, text_koi8, 1ul);
    clock_gettime(CLOCK_MONOTONIC, &t1);
    Dt_call = delta_t(&t0, &t1); /* (in nanoseconds) */
    printf("Dt_call = %ld ns\n", Dt_call);
    /* Test for koi8-r */
    clock_gettime(CLOCK_MONOTONIC, &t0);
    memcpy(text_koi8_a, text_koi8, size);
    clock_gettime(CLOCK_MONOTONIC, &t1);
    Dt_koi8 = delta_t(&t0, &t1) - Dt_call;
    printf("Dt_koi8 = %ld ns\n", Dt_koi8); fflush(stdout);
    /* Test for utf-8 */
    clock_gettime(CLOCK_MONOTONIC, &t0);
    memcpy(text_utf8_a, text_utf8, size_u8);
    clock_gettime(CLOCK_MONOTONIC, &t1);
    Dt_utf8 = delta_t(&t0, &t1) - Dt_call;
    if (i > 9ul) { /* Skip first 10 experiments (wait for stabilization) */
      Dt_koi8_total += Dt_koi8;
      Dt_utf8_total += Dt_utf8;
    }
    printf("Dt_utf8 = %ld ns\n", Dt_utf8);
    Dt_utf8_to_Dt_koi8 = (double)Dt_utf8 / (double)Dt_koi8;
    printf("Dt_utf8 / Dt_koi8 = %.5g\n", Dt_utf8_to_Dt_koi8);
    fflush(stdout);
  }
  puts("===================================");
  printf("Dt_koi8_total = %ld ns\nDt_utf8_total = %ld ns\n"
         "Dt_utf8_total / Dt_koi8_total = %.5g\n",
         Dt_koi8_total, Dt_utf8_total,
         (double)Dt_utf8_total / (double)Dt_koi8_total);
  printf("len_u8 / len = %.5g\n", (double)(size_u8 - 1ul) / (double)len );
  free(text_utf8_a);
  free(text_koi8_a);
  free(text_utf8);
  free(text_koi8);
  return 0;
}

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру