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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос по кодировке текстового файла.
Валентиныч
сообщение 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
Methane
сообщение Mar 27 2011, 16:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



То UTF16 у вас получился.
Go to the top of the page
 
+Quote Post
rezident
сообщение Mar 27 2011, 16:11
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Валентиныч @ Mar 27 2011, 21:53) *
Просмотр HEX-кода файла встроенным в FAR редактором показывает, что каждый символ кириллического текста отображается двумя символами (не понятными для меня). Это и удваивает общий размер файла.
А вы уверены, что вы все знаете про UTF-8?
Go to the top of the page
 
+Quote Post
Валентиныч
сообщение Mar 27 2011, 16:18
Сообщение #4


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

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



Цитата(rezident @ Mar 27 2011, 21:11) *
А вы уверены, что вы все знаете про UTF-8?
Если бы я был в этом уверен, я бы не сунулся с подобным вопросом в раздел для начинающих.

А вы уверены, что ваш встречный вопрос поможет мне в решении проблемы? biggrin.gif

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


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


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



если хотите 8 битную кодировку - берите русский текст и через блокнот сохраняйте в формате ANSI , при этом будет задействована 8-битная кодировка Windows-1251.
Цитата
В системах Microsoft Windows кодовая страница ANSI (англ. ANSI code page, ACP) может означать:
Windows-1252 (в контексте американских и западноевропейских локализаций)
Windows-1251 — так называемая ранее корпорацией Microsoft «кириллица ANSI» (англ. ANSI Cyrillic)

http://ru.wikipedia.org/wiki/Windows-1251
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Mar 27 2011, 16:33
Сообщение #6





Guests






Цитата
... ссылка утверждает, что китайское письмо должно утраивать размер файла, но фактически этого не происходит.

Китайский язык немного по другому устроен, чем русский или английский...
Старый анекдот напомнили: Брежнев приехал в Китай. Полчаса выступает с трибуны, затем подходит
переводчик и произносит лишь одно слово. Выступает еще полчаса - переводчик снова произносит лишь
одно слово. Причем то же самое слово... biggrin.gif Извините за оффтоп.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Mar 27 2011, 16:35
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Вот ё.
Китайское предложение может состоять из одного иероглифа. В то время как английское из нескольких слов.
В википедии все доступным языком прописано.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Валентиныч
сообщение Mar 27 2011, 16:37
Сообщение #8


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

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



Цитата(тау @ Mar 27 2011, 21:32) *
если хотите 8 битную кодировку - берите русский текст и через блокнот сохраняйте в формате ANSI , при этом будет задействована 8-битная кодировка Windows-1251.
Я хочу, что бы железка, у которой в мозгах живет исходный английский файл, так же нормально отображала у себя на дисплее и русскоязычное меню.


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


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Валентиныч @ Mar 27 2011, 22:37) *
Я хочу, что бы железка, у которой в мозгах живет исходный английский файл, так же нормально отображала у себя на дисплее и русскоязычное меню.
Не совсем понятно, как конечная цель коррелирует с описываемыми вами проблемами?
Вот я беру небольшой ASCII-файл 963 байта и с помощью редактора FAR2 сохраняю его как UTF-8. Размер файла становится 1773 байт. Но я не вижу, где тут проблема-то? Если ваша железка действительно способна UTF-8 отображать, то причем тут длины файлов?
Строка символов на экране в любой исходной кодировке должна выглядеть одинаково.
Go to the top of the page
 
+Quote Post
Валентиныч
сообщение Mar 28 2011, 02:04
Сообщение #10


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

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



Цитата(rezident @ Mar 27 2011, 22:25) *
Если ваша железка действительно способна UTF-8 отображать, то причем тут длины файлов?
Начинаю понимать, что скорее всего ни при чем.
Еще вопрос. Где и как задается стиль и размер шрифта такого файла?


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


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Цитата(Валентиныч @ Mar 28 2011, 12:34) *
Где и как задается стиль и размер шрифта такого файла?

На этот вопрос лучше всего может ответить разработчик прибора, в вашем случае - китайцы из Теквэя. Или кто-то из хакеров EEVblog-а. Или можете сами докопаться до ответа, если будете изучать man Линукса. laughing.gif
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 28 2011, 05:24
Сообщение #12


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Валентиныч @ Mar 28 2011, 05:04) *
Еще вопрос. Где и как задается стиль и размер шрифта такого файла?
Нигде. Файл содержит текст. Кто и как будет его показывать, ни файл, ни текст в нём не в курсе.
Go to the top of the page
 
+Quote Post
Валентиныч
сообщение Mar 28 2011, 05:46
Сообщение #13


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

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



Цитата(andrew_b @ Mar 28 2011, 11:24) *
Нигде.
Понял. Спасибо.


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


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

Группа: Свой
Сообщений: 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
XVR
сообщение Apr 1 2011, 07:43
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Вам нужен Unicode редактор, который умеет читать и писать файлы в UTF-8. Любые преобразования внутри редактора в ANSI вам сразу обрежет половину символов sad.gif
Go to the top of the page
 
+Quote Post

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

 


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


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