New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Символы Windows ANSI вместо UTF-8

Сообщаем о найденных ошибках сюда

Re: Символы Windows ANSI вместо UTF-8

Postby Michael72 » Sat May 03, 2014 7:03 pm

Abs62 wrote:При запросе перевода конкретного слова никакие стратегии поиска стандартом RFC 2229 не предусматриваются - только при поиске среди заголовков. В клиенте DictD, похоже, эти два процесса - поиск заголовков и запрос перевода по найденным заголовкам - совмещены в один. В GD - разделены. Поэтому в GD выбор стратегии влияет на поиск заголовков по слову и не влияет на поиск перевода по найденному заголовку.

Я всё понял. Разницу между стратегией prefix (которая по умолчанию в GoldenDict) и word увидел. Сперва подумал, что типа бага.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Символы Windows ANSI вместо UTF-8

Postby Michael72 » Sat May 03, 2014 7:45 pm

Сразу тогда другой вопрос. А поддержка MIME-контента не предвидится?
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Символы Windows ANSI вместо UTF-8

Postby Abs62 » Sat May 03, 2014 8:09 pm

Тут надо прикинуть, насколько важный это может дать профит и в какой геморрой может обойтись. Там видно будет. ;)
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Re: Символы Windows ANSI вместо UTF-8

Postby Michael72 » Tue Mar 27, 2018 7:47 am

Abs62 wrote:
Michael72 wrote:Если в меню Правка - Словари - Источники - Программы задан тип контента Html, то GoldenDict откуда-то же может узнать, в какой кодировке:
Что мешает точно также узнавать кодировку и для типа Текст?

В html есть тег <meta> с указанием кодировки. А если его нет, то точно так же не может. Просто умолчания разные - UTF-8 для "Html" и локальная восьмибитная для "Текст".
Michael72 wrote:А каким образом Блокнот справляется с этой задачей? Откройте в Блокноте текстовый файл и он как правило автоматически определяет в каком формате текст.

Либо точно по маркеру в начале файла, либо строит предположения по первым символам без какой-либо гарантии.

Я так понял, что прежде чем тег <meta> прочитать, GoldenDict должен суметь по BOM понять, что это не UTF-8, а UTF-16LE. Похоже, что GoldenDict BOM не распознаёт. Это так или мне показалось?
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Символы Windows ANSI вместо UTF-8

Postby Michael72 » Sat May 05, 2018 9:56 am

Столкнулся с такой проблемой. Я написал сценарий Windows Script Host, который работает в Windows XP, благодаря тому, что каким-то хитрым способом мне удалось преобразовывать текст из UTF-16LE в UTF-8. А вот в Windows 8 и 10 этот хитрый способ уже почему-то не работает — преобразовывать текст из одного формата в другой не получается. Самым правильным решением проблемы, на мой взгляд, — научить GoldenDict по маркеру BOM правильно определять кодировку Unicode.
Итак, ещё раз попытаюсь сформулировать суть проблемы. Если указан тип Html, то GoldenDict принимает данные в кодировке UTF-8 при этом метка BOM не учитывается. В Windows утилита командной строки cscript.exe выдаёт данные в кодировке utf-16le. В связи с этим есть определённые трудности из-за того, что GoldenDict игнорирует метку BOM. Есть очень сильное пожелание, чтобы GoldenDict учитывал BOM и таким образом правильно определял кодировку Unicode.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Символы Windows ANSI вместо UTF-8

Postby Michael72 » Thu Sep 13, 2018 4:14 pm

Abs62 wrote:Это он и в DSL формате подсунуть может? А каких ещё сюрпризов от него можно ожидать? Кажется это попахивает большим геморроем...

Продолжаю верить, что когда-нибудь в GoldenDict появится поддержка команды OPTION MIME. В RFC 2229 говорится:
If a client requests this option, then the client MUST be able to
parse Content-Type and Content-transfer-encoding headers, and MUST be
able to ignore textual responses which have an unsupported content or
encoding. A client MUST support the UTF-8 encoding [RFC2044], which
minimally means that the client MUST recognize UTF-8 multi-octet
encodings and convert these into some symbol that can be printed by
the client.

В связи с этой цитатой решил показать каким должно быть поведение GoldenDict, чтобы оно соответствовало тому, что сказано в этих словах:

... MUST be able to ignore textual responses which have an unsupported content or encoding.

Чтобы сделать это, я создал сценарий на языке JScript. При желании можно получить этот сценарий c моего OneDrive.

Загрузить сценарий — утилиту для доступа к DICT-серверу из GoldenDict'а

Примечание. Файл dict1.12.1.exe — это так называемый саморазворачивающийся (self-extracting) архив, сделанный популярным архиватором PowerArchiver. Просто запустите его. Инсталлятор скопирует все файлы, идущие в комплекте со сценарием, в подкаталог \dict1.12.1 того каталога, куда вы установили программу GoldenDict.
На DICT-сервере dict.dvo.ru есть словарь mech_mime, который содержит MIME-заголовок:

Content-type: text/x-lingvo-dsl
Content-transfer-encoding: 8bit

Предположим, что GoldenDict не поддерживает такой контент и должен проигнорировать полученный результат. Проверим как это работает в моем сценарии. Выполним поиск для слова aaa:
2018-09-13_21-57-55.png
Словарь GoldenDict, версия 1.5.0-RC2-311-g15062f7
2018-09-13_21-57-55.png (85.74 KiB) Viewed 19442 times

Собственно говоря, я думаю, что это не очень сложно...
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Previous

Return to Ошибки

Who is online

Users browsing this forum: No registered users and 11 guests