реклама на сайте
подробности

 
 
> Вопрос по кодировке текстового файла.
Валентиныч
сообщение Mar 27 2011, 15:53
Сообщение #1


Профессионал
****

Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712



Есть исходный английский текстовый файл, написанный латиницей в Unicod UTF-8.
Его требуется перевести на русский язык (ес-но, на кириллице), и при этом сохранить первоначальную кодировку UTF-8.

Все попытки выполнить требуемое, заканчиваются не очень удачно: файл "разбухает" в размере практически в два раза, при том, что количество строк, остается неизменным, при незначительном изменении количества символов в каждой строке (в ту, или другую сторону), т.е. общее количество символов в тексте практически не изменяется.

Просмотр HEX-кода файла встроенным в FAR редактором показывает, что каждый символ кириллического текста отображается двумя символами (не понятными для меня). Это и удваивает общий размер файла.

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

P.S. Кстати, точно такой же китайский файл написанный иероглифами, по размеру практически не отличается от английского.

P.P.S. Не нашел более подходящего раздела для размещения вопроса. Если модератор посчитает, что теме не место в этом разделе, прошу перенести ее, или вообще удалить.


--------------------
Закономерность: Чем больше узнаю, тем меньше знаю...
Любые мнения, даже ошибочные, имеют право на существование.
Чем лучше узнаю людей, тем больше нравятся собаки...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Валентиныч
сообщение Apr 1 2011, 05:44
Сообщение #2


Профессионал
****

Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712



Очередной вопрос по кодировке UTF-8.

В тексте есть несколько "нестандартных" символов, описание которых я не нашел в HEX-таблице этой кодировки. Речь идет о символах "Бесконечность" (горизонтальная восьмерка), "Умножение" (не буква "Х" кириллицы или латиницы, а именно крестик), и самое главное - о символе "математическое неравенство" (перечеркнутое "равно"). Предполагаю, что все это символы псевдографики, специально созданные разработчиком для этого прибора.
Редактор FAR2 (и некоторые другие редакторы, но не все) нормально читаю и отображают эти символы. Насколько я понимаю, FAR2 показывает десятичный код символа, под которым расположен курсор, в правом краю своей верхней (служебной?) строки. Этот код для "неравенства" - 8800.
Но любая попытка посмотреть hex-код приводит к модификации, и искажению символа при дальнейшем просмотре - графически он вырождается в "кракозяблу" (ее hex-код, если я его правильно считываю: E2 89 A0). При возврате из режима просмотра hex-кодов в обычный вьювер, FAR2 перекодирует весь текст из UTF-8 в ANSI 1251.
Нужный символ в модифицированном и сохраненном файле, вообще перестается отображаться на дисплее прибора - вместо него рисуется пробел.
Попытка импортировать код символа, или целую строку содержащую этот символ из исходного файла в модифицированный результата не дает - на дисплее символ отсутствует.
Как ни странно, "бесконечность" более лояльно относится к экспериментам с перекодировками - этот символ нормально отображается на дисплее после модификации.
"Умножение" пришлось заменить на литинский "х" - начертания буквы несколько отличаются от оригинального символа, и не только размерами, но с этим можно примириться.
А вот с "неравенством" полный косяк. Для того, чтобы вывести на экран хоть что-то, по смыслу напоминающее "не равно", пришлось рисовать вот такую комбинацию: "<=>". Благо, место позволяет...

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


--------------------
Закономерность: Чем больше узнаю, тем меньше знаю...
Любые мнения, даже ошибочные, имеют право на существование.
Чем лучше узнаю людей, тем больше нравятся собаки...
Go to the top of the page
 
+Quote Post
SysRq
сообщение Apr 2 2011, 17:53
Сообщение #3


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(Валентиныч @ Apr 1 2011, 09:44) *
перечеркнутое "равно"
Код символа в UTF8 будет E289A0. Попробуйте.
Конвертировать UTF16 <> UTF8 умеет хоть "Блокнот" из WindowsXP. При открытии\сохранении файла достаточно указывать кодировку (ниже имени файла там, обычно никто внимания не обращает).
Go to the top of the page
 
+Quote Post
Валентиныч
сообщение Apr 3 2011, 02:14
Сообщение #4


Профессионал
****

Группа: Свой
Сообщений: 553
Регистрация: 17-02-05
Из: Свердловская обл.
Пользователь №: 2 712



Цитата(SysRq @ Apr 2 2011, 23:53) *
Код символа в UTF8 будет E289A0.
...
Конвертировать UTF16 <> UTF8 умеет хоть "Блокнот" из WindowsXP.
По поводу кода Е289А0 я уже писал выше. Я вижу этот код как в оригинальном, английском файле меню, так и в своем переводе, но символ из первого файла читается скопом адекватно, а в моем переводе игнорируется, хотя код символа и там, и там написан одинаково.

С учетом того, что скоп не понимает этот (и пару других) символов не только в моем, русском файле, но и в немецком и французском файлах, залитых самим разработчиком, остается предположить, что проблема где-то внутри самого прибора, а не в моем неумении работать с редакторами текстовых файлов различных кодировок.

Блокнот из винды открывает файл, но не реагирует в нем на код перевода строки (0А), и показывает весь текст сплошным массивом. Или привязывает перенос с размерам окна. И в том, в другом случае это не удобно для правильного форматирования размеров (длин) строк, и сравнения с исходным файлом.



--------------------
Закономерность: Чем больше узнаю, тем меньше знаю...
Любые мнения, даже ошибочные, имеют право на существование.
Чем лучше узнаю людей, тем больше нравятся собаки...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Валентиныч   Вопрос по кодировке текстового файла.   Mar 27 2011, 15:53
- - Methane   То UTF16 у вас получился.   Mar 27 2011, 16:04
- - rezident   Цитата(Валентиныч @ Mar 27 2011, 21:53) П...   Mar 27 2011, 16:11
|- - Валентиныч   Цитата(rezident @ Mar 27 2011, 21:11) А в...   Mar 27 2011, 16:18
- - тау   если хотите 8 битную кодировку - берите русский те...   Mar 27 2011, 16:32
|- - Валентиныч   Цитата(тау @ Mar 27 2011, 21:32) если хот...   Mar 27 2011, 16:37
|- - rezident   Цитата(Валентиныч @ Mar 27 2011, 22:37) Я...   Mar 27 2011, 17:25
|- - Валентиныч   Цитата(rezident @ Mar 27 2011, 22:25) Есл...   Mar 28 2011, 02:04
|- - =AK=   Цитата(Валентиныч @ Mar 28 2011, 12:34) Г...   Mar 28 2011, 02:39
|- - andrew_b   Цитата(Валентиныч @ Mar 28 2011, 05:04) Е...   Mar 28 2011, 05:24
|- - Валентиныч   Цитата(andrew_b @ Mar 28 2011, 11:24) Ниг...   Mar 28 2011, 05:46
- - @Ark   Цитата... ссылка утверждает, что китайское письмо ...   Mar 27 2011, 16:33
- - DpInRock   Вот ё. Китайское предложение может состоять из од...   Mar 27 2011, 16:35
- - XVR   Вам нужен Unicode редактор, который умеет читать и...   Apr 1 2011, 07:43
- - Валентиныч   Кто-бы еще ссылкой поделился на такой редактор. ...   Apr 1 2011, 09:42
|- - Tanya   Цитата(Валентиныч @ Apr 1 2011, 13:42) Кт...   Apr 1 2011, 09:50
|- - Валентиныч   Цитата(Tanya @ Apr 1 2011, 15:50) Notepad...   Apr 1 2011, 10:47
- - SysRq   Быть может, в начале файла префикс UFT8 нужен...   Apr 4 2011, 14:44
- - Валентиныч   Проверил. Префикс EFBBBF есть во всех файлах - и ...   Apr 4 2011, 17:50


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 13:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016