Языковая политика

Общие обсуждения => Компьютеры и интернет => Topic started by: Euskaldun on 13 April 2020, 21:55:58

Title: Задачка по html
Post by: Euskaldun on 13 April 2020, 21:55:58
Есть txt файл, в 1,5М в 143 тыс строчек с японскими иерогами, отсортированными по частоте использования в японских газетах. В файле используется старая кодировка, поэтому иероги не просто "плохо" отражаются, с ??? и т.д., там просто не те иероги отражаются  :o У этого явления даже есть собственное название: модзибаке (https://en.wikipedia.org/wiki/Mojibake). Парсер неправильно комбинирует байты кодировки и в результате иероги получаются, но не те, которые нужны.

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

Мне удалось "починить" файл, открыв его в хроме и насильно изменив кодировку с UTF-8 на EUC-JP. Однако сохранить излеченный файл не удалось: так как он изначально был txt, то изменённая кодировка нигде не сохраняется. Я вставил код html с кодировкой в сам файл и с помощью Notepad сохранил его в формате html. Почти всё хорошо, кроме одной детали - все строчки теперь слиплись в сплошной текст, так как <br> там естественно не появились. Я не использовал Word и т.д. так файл из-за его тяжести процессинга завешивает программы. Даже Notepad страшно тормозит, если что-то вставлять в файл.

Вопрос: Как сделать файл удобочитаемым опять? а) вставить <br> в каждую строчку html файла, автоматически? б) навязать кодировку txt файлу? в) какой-то другой вариант, который мне не пришёл в голову?

Идеи?  ??? :-\
 
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 22:18:15
В линухе вариант "б" решается без проблем одной строчкой: iconv -f EUC-JP oldfile.txt > newfile.txt
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 22:20:41
Насчёт варианта "а": вроде как редакторы вроде Notepad++ умеют делать автозамену по регулярным выражениям. Тогда делаете просто замену $ на <br /> и оно вставляется в конце каждой строчки.
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 22:49:42
У этого явления даже есть собственное название: модзибаке (https://en.wikipedia.org/wiki/Mojibake).
Русский вариант называется "крякозябры".
Title: Re: Задачка по html
Post by: Euskaldun on 13 April 2020, 23:27:18
Русский вариант называется "крякозябры".
они в русском "кракозябры", в японском они обычные символы, только неправильные. Это как в русском тексте заменить буквы кириллицы кириллицей, но случайным образом. В остальном текст абсолютно нормальный, даже знаки пунктуации правильно расставлены  :dunno:
Title: Re: Задачка по html
Post by: Euskaldun on 13 April 2020, 23:29:18
Насчёт варианта "а": вроде как редакторы вроде Notepad++ умеют делать автозамену по регулярным выражениям. Тогда делаете просто замену $ на <br /> и оно вставляется в конце каждой строчки.
так ведь нет повторяющего выражения  :dunno: В каждой строчке абсолютно новый иерог и против него число, постоянно уменшающееся :-\
Title: Re: Задачка по html
Post by: Euskaldun on 13 April 2020, 23:30:06
В линухе вариант "б" решается без проблем одной строчкой: iconv -f EUC-JP oldfile.txt > newfile.txt
а для виндоуса есть подобный вариант?
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 23:31:14
Это как в русском тексте заменить буквы кириллицы кириллицей, но случайным образом.
При интерпретации КОИ-8 как Win1251 кириллица оставалась кириллицей.
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 23:36:01
а для виндоуса есть подобный вариант?
Вроде как в том же Notepad++ есть функция преобразования файла в UTF-8
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 23:37:16
так ведь нет повторяющего выражения  :dunno: В каждой строчке абсолютно новый иерог и против него число, постоянно уменшающееся :-\
Не нужны повторяющиеся выражения, в regexp $ -- это специальный символ, обозначающий конец строки. Таким образом можно что угодно вставлять в начало или в конец строки. Не помню точно, поддерживается ли это в Notepad++, но он настолько навороченный, что удивлюсь, если там этой фичи нет.
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 23:41:57
Вроде как в том же Notepad++ есть функция преобразования файла в UTF-8
Посмотрел -- вроде как из японских кодировок он поддерживает только Shift-JIS. Если это не то, то с этим способом облом, нужно или другую прогу искать или ещё чего...
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 23:49:54
Не помню точно, поддерживается ли это в Notepad++, но он настолько навороченный, что удивлюсь, если там этой фичи нет.
Проверил, да -- этот способ работает. Только вместо "test" написать "<br/>"
Title: Re: Задачка по html
Post by: Upliner on 13 April 2020, 23:55:27
Посмотрел -- вроде как из японских кодировок он поддерживает только Shift-JIS. Если это не то, то с этим способом облом, нужно или другую прогу искать или ещё чего...
Вот, вроде нашлась сборка, которая поддерживает EUC-JP:
https://www.off-soft.net/en/apps/notepadpp/notepadpp-japack1.html
Title: Re: Задачка по html
Post by: Euskaldun on 14 April 2020, 00:02:24
Посмотрел -- вроде как из японских кодировок он поддерживает только Shift-JIS. Если это не то, то с этим способом облом, нужно или другую прогу искать или ещё чего...
Shift-JIS не то, этот файл из 1998 года, поэтому в нём кодировка ещё более допотопная
Title: Re: Задачка по html
Post by: Euskaldun on 14 April 2020, 00:10:15
Проверил, да -- этот способ работает. Только вместо "test" написать "<br/>"
большое спасибо  :yes: Сделал всё по инструкции, пока висим  :lol:
Title: Re: Задачка по html
Post by: Euskaldun on 14 April 2020, 00:35:30
 >o< короче всё получилось, теперь два вопроса.

1. Безопасно ли хранить важную информацию в старых кодировках? Могут ли их "отключить" со временем? Если так, то как мне теперь проконвертировать html файл из одной кодировки в другую?

2. Я абсолютный ноль в ccs, мне как-то интуитивнее с прямыми тагами вроде <font> работать. Возможно ли вообще так поставить таги, чтобы только текст был определённого размера, но не цифры?  ??? Проблема в том, что в редких иерогах куча мелких черт, и мне их удобнее при размере 5 наблюдать, а вот цифры такого гигантского размера мне глаза ломают. Я их оставил бы размера "3". Можно такое как-то сделать?
Title: Re: Задачка по html
Post by: Euskaldun on 14 April 2020, 00:38:03
За наводку на Notepad++  особое спасибо, я давно искал, в чём было бы удобно редактировать страницы :drink
Title: Re: Задачка по html
Post by: Upliner on 14 April 2020, 00:40:57
1. Безопасно ли хранить важную информацию в старых кодировках? Могут ли их "отключить" со временем? Если так, то как мне теперь проконвертировать html файл из одной кодировки в другую?
Есть небольшая вероятность, что новых версиях программ старых кодировок уже не будет. Если вы скопировали текст в Notepad++, то по умолчанию он сохранится в UTF8.
Title: Re: Задачка по html
Post by: Upliner on 14 April 2020, 00:57:27
2. Я абсолютный ноль в ccs, мне как-то интуитивнее с прямыми тагами вроде <font> работать. Возможно ли вообще так поставить таги, чтобы только текст был определённого размера, но не цифры?  ??? Проблема в том, что в редких иерогах куча мелких черт, и мне их удобнее при размере 5 наблюдать, а вот цифры такого гигантского размера мне глаза ломают. Я их оставил бы размера "3". Можно такое как-то сделать?
Если без css -- можно весь текст загнать в тег <font size="5">, а цифры дополнительно загнать в тег <font size="3"> с помощью той же автозамены: (первая сточка -- Find what, вторая -- Replace with)
(\d+)
<font size="3">\1</font>
Title: Re: Задачка по html
Post by: Euskaldun on 14 April 2020, 00:58:10
Есть небольшая вероятность, что новых версиях программ старых кодировок уже не будет. Если вы скопировали текст в Notepad++, то по умолчанию он сохранится в UTF8.
В смысле "скопировать"? Я его просто открыл с помощью Notepad++. Там в самом файле вот такая "кодировка":

¤Î   3711420<br/>
¤Ï   1950996<br/>
¤¿   1736532<br/>
¤Ë   1711256<br/>
¤¬   1678863<br/>
¤¹¤ë   1616566<br/>
¤È   1292531<br/>
¤Æ   1251528...

Это только хром уже преобразует по тегу <meta charset="ABC">. Как-то по-другому надо сделать? ???
Title: Re: Задачка по html
Post by: Euskaldun on 14 April 2020, 01:04:54
Попробовал тупо сохранить уже из браузера, одной страницей. файл раздулся в 3 раза до 4.5М, а иероги, насколько я понимаю, сохраняются теперь 16ричным кодом с много "=". Кодировка, как вижу, сохранена EUC-JP. Короче полная лажа  :(
Title: Re: Задачка по html
Post by: Upliner on 14 April 2020, 01:12:50
Попробовал тупо сохранить уже из браузера, одной страницей. файл раздулся в 3 раза до 4.5М, а иероги, насколько я понимаю, сохраняются теперь 16ричным кодом с много "=". Кодировка, как вижу, сохранена EUC-JP. Короче полная лажа  :(
А copy-paste-ом из браузера не получается скопировать в Notepad++?
Title: Re: Задачка по html
Post by: Euskaldun on 14 April 2020, 01:20:43
попробую
Title: Re: Задачка по html
Post by: Euskaldun on 05 May 2020, 20:27:31
Новая проблема. Есть вот такая страница: https://accent.u-biq.org/a.html Это только буква "А" словаря, ещё есть остальные 45 букв алфавита + имена, географические названия и т.д. (меню справа).

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

Проблема: как можно догадаться - сама красная разметка, при тупом копировании она теряется, а она как бы и есть суть словаря. Она организована следующим образом: каждая часть слова с разным тоном обрамлена тегами типа <span class=3D"аX">АБВ....</span>, где X =(1..4) в зависимости от начертания, 1= подчеркивание снизу и подъём вверх после слога, 2 - надчёркивание и спуск, 3 - подчёркивание (без подъёма), 4 - надчёркивание (без спуска).   

Я думал открыть страницу в Notepad’e++ и выкопировать оттуда, заменяя <span> тем, чем мне надо уже в Экселе. Проблема в том, что все японские символы хранятся в виде html reference и при экспортировании они остаются в виде =A2[ и т.д. А дальше как?

Можно как-нибудь заставить  Notepad++ преобразовать html reference в сами символы? Кодировка файла Shift-JIS
Title: Re: Задачка по html
Post by: Euskaldun on 07 May 2020, 21:26:48
Решения нет?  :(
Title: Re: Задачка по html
Post by: Upliner on 07 May 2020, 21:28:30
Забыл. Сейчас посмотрю...
Title: Re: Задачка по html
Post by: Upliner on 07 May 2020, 21:36:40
Честно говоря, я в файле никаких html reference не вижу, экспортировал с Хрома. Так что либо это какой-то глюк при экспорте, либо я что-то не так понял...
Title: Re: Задачка по html
Post by: Upliner on 07 May 2020, 21:42:17
Кстати =A2[ это явно не html reference, больше похоже на почтовую кодировку. Вы случайно не в eml сохраняли?
Title: Re: Задачка по html
Post by: Euskaldun on 08 May 2020, 01:43:47
Честно говоря, я в файле никаких html reference не вижу, экспортировал с Хрома. Так что либо это какой-то глюк при экспорте, либо я что-то не так понял...
Я сохранил страницу из Хрома и открыл Notepad'ом, вместо японских символом html reference ("=81@" и похожее). Как сохранить файл так, чтобы открыв его NPP были сами символы, а не их коды? 
Title: Re: Задачка по html
Post by: Euskaldun on 08 May 2020, 01:45:53
Кстати =A2[ это явно не html reference, больше похоже на почтовую кодировку. Вы случайно не в eml сохраняли?
возможно это прелести Shift-JIS, я никогда в документацию японских кодировок не вникал. Сайт старый, 2010 года, так что неудивительно, что там не UTF-8, который в Японии начал приживаться сравнительно недавно
Title: Re: Задачка по html
Post by: Upliner on 08 May 2020, 11:15:46
Очень странно, у меня проблемы вообще не возникает, Shift-JIS сразу автоматически определяется :dunno:
Title: Re: Задачка по html
Post by: Euskaldun on 08 May 2020, 13:33:43
А у меня так:
(https://i.ibb.co/qJFDysz/fragment.jpg)
Даже пытался вручную менять кодировку, что я делаю не так?  :(
Title: Re: Задачка по html
Post by: Euskaldun on 08 May 2020, 13:39:53
Уже понял в чём дело: я сохранял "single file", чтобы не создавалась куча подкаталогов, в результате полетела кодировка  >:( Сохранил в виде html и символы на месте. Почему так?
Title: Re: Задачка по html
Post by: Upliner on 08 May 2020, 13:51:46
Уже понял в чём дело: я сохранял "single file", чтобы не создавалась куча подкаталогов, в результате полетела кодировка  >:( Сохранил в виде html и символы на месте. Почему так?
Я так понял, mhtml -- это специально закодированный html файл
Title: Re: Задачка по html
Post by: Upliner on 08 May 2020, 13:54:29
Quote from: wiki
The content of an MHTML file is encoded using the same techniques that were first developed for HTML email messages
Говорил же, почтовая кодировка.
Title: Re: Задачка по html
Post by: Euskaldun on 08 May 2020, 14:23:57
Говорил же, почтовая кодировка.
А смысл в этом, что они выигрывают кодируя символы?
Title: Re: Задачка по html
Post by: Upliner on 08 May 2020, 15:05:57
А смысл в этом, что они выигрывают кодируя символы?
В своё время почтовые серверы поддерживали только 7-битную кодировку, с другими были немалые проблемы.