Автор Тема: Задачка по html  (Прочитано 2403 раз)

Оффлайн Gaeilgeoir

  • Глобальный модератор
  • Трижды герой
  • *****
  • Сообщений: 6542
  • Карма: +42/-12
    • Просмотр профиля
Задачка по html
« : 13 Апреля 2020, 21:55:58 »
  • 0
  • 0
Есть txt файл, в 1,5М в 143 тыс строчек с японскими иерогами, отсортированными по частоте использования в японских газетах. В файле используется старая кодировка, поэтому иероги не просто "плохо" отражаются, с ??? и т.д., там просто не те иероги отражаются  :o У этого явления даже есть собственное название: модзибаке. Парсер неправильно комбинирует байты кодировки и в результате иероги получаются, но не те, которые нужны.

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

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

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

Идеи?  ??? :-\
 

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #1 : 13 Апреля 2020, 22:18:15 »
  • 0
  • 0
В линухе вариант "б" решается без проблем одной строчкой: iconv -f EUC-JP oldfile.txt > newfile.txt
« Последнее редактирование: 13 Апреля 2020, 22:20:51 от Upliner »
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #2 : 13 Апреля 2020, 22:20:41 »
  • 0
  • 0
Насчёт варианта "а": вроде как редакторы вроде Notepad++ умеют делать автозамену по регулярным выражениям. Тогда делаете просто замену $ на <br /> и оно вставляется в конце каждой строчки.
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #3 : 13 Апреля 2020, 22:49:42 »
  • 0
  • 0
У этого явления даже есть собственное название: модзибаке.
Русский вариант называется "крякозябры".
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Оффлайн Gaeilgeoir

  • Глобальный модератор
  • Трижды герой
  • *****
  • Сообщений: 6542
  • Карма: +42/-12
    • Просмотр профиля
Re: Задачка по html
« Ответ #4 : 13 Апреля 2020, 23:27:18 »
  • 0
  • 0
Русский вариант называется "крякозябры".
они в русском "кракозябры", в японском они обычные символы, только неправильные. Это как в русском тексте заменить буквы кириллицы кириллицей, но случайным образом. В остальном текст абсолютно нормальный, даже знаки пунктуации правильно расставлены  :dunno:

Оффлайн Gaeilgeoir

  • Глобальный модератор
  • Трижды герой
  • *****
  • Сообщений: 6542
  • Карма: +42/-12
    • Просмотр профиля
Re: Задачка по html
« Ответ #5 : 13 Апреля 2020, 23:29:18 »
  • 0
  • 0
Насчёт варианта "а": вроде как редакторы вроде Notepad++ умеют делать автозамену по регулярным выражениям. Тогда делаете просто замену $ на <br /> и оно вставляется в конце каждой строчки.
так ведь нет повторяющего выражения  :dunno: В каждой строчке абсолютно новый иерог и против него число, постоянно уменшающееся :-\

Оффлайн Gaeilgeoir

  • Глобальный модератор
  • Трижды герой
  • *****
  • Сообщений: 6542
  • Карма: +42/-12
    • Просмотр профиля
Re: Задачка по html
« Ответ #6 : 13 Апреля 2020, 23:30:06 »
  • 0
  • 0
В линухе вариант "б" решается без проблем одной строчкой: iconv -f EUC-JP oldfile.txt > newfile.txt
а для виндоуса есть подобный вариант?

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #7 : 13 Апреля 2020, 23:31:14 »
  • 0
  • 0
Это как в русском тексте заменить буквы кириллицы кириллицей, но случайным образом.
При интерпретации КОИ-8 как Win1251 кириллица оставалась кириллицей.
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #8 : 13 Апреля 2020, 23:36:01 »
  • 0
  • 0
а для виндоуса есть подобный вариант?
Вроде как в том же Notepad++ есть функция преобразования файла в UTF-8
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #9 : 13 Апреля 2020, 23:37:16 »
  • 0
  • 0
так ведь нет повторяющего выражения  :dunno: В каждой строчке абсолютно новый иерог и против него число, постоянно уменшающееся :-\
Не нужны повторяющиеся выражения, в regexp $ -- это специальный символ, обозначающий конец строки. Таким образом можно что угодно вставлять в начало или в конец строки. Не помню точно, поддерживается ли это в Notepad++, но он настолько навороченный, что удивлюсь, если там этой фичи нет.
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #10 : 13 Апреля 2020, 23:41:57 »
  • 0
  • 0
Вроде как в том же Notepad++ есть функция преобразования файла в UTF-8
Посмотрел -- вроде как из японских кодировок он поддерживает только Shift-JIS. Если это не то, то с этим способом облом, нужно или другую прогу искать или ещё чего...
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #11 : 13 Апреля 2020, 23:49:54 »
  • 0
  • 0
Не помню точно, поддерживается ли это в Notepad++, но он настолько навороченный, что удивлюсь, если там этой фичи нет.
Проверил, да -- этот способ работает. Только вместо "test" написать "<br/>"
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Онлайн Upliner

  • Администратор
  • Дважды герой
  • *****
  • Сообщений: 2581
  • Карма: +6/-0
  • Пол: Мужской
  • Кис-кис-кис!
    • Просмотр профиля
    • лифчег
Re: Задачка по html
« Ответ #12 : 13 Апреля 2020, 23:55:27 »
  • 0
  • 0
Посмотрел -- вроде как из японских кодировок он поддерживает только Shift-JIS. Если это не то, то с этим способом облом, нужно или другую прогу искать или ещё чего...
Вот, вроде нашлась сборка, которая поддерживает EUC-JP:
https://www.off-soft.net/en/apps/notepadpp/notepadpp-japack1.html
Пацаки, а пацаки? А вы почему не в намордниках? Приказ господина ПЖ -- всем пацакам одеть намордники! (с)

Новий лох, новий даун, все це станеться іще раз, так як на початку, хай триває далі цирк...

Оффлайн Gaeilgeoir

  • Глобальный модератор
  • Трижды герой
  • *****
  • Сообщений: 6542
  • Карма: +42/-12
    • Просмотр профиля
Re: Задачка по html
« Ответ #13 : 14 Апреля 2020, 00:02:24 »
  • 0
  • 0
Посмотрел -- вроде как из японских кодировок он поддерживает только Shift-JIS. Если это не то, то с этим способом облом, нужно или другую прогу искать или ещё чего...
Shift-JIS не то, этот файл из 1998 года, поэтому в нём кодировка ещё более допотопная

Оффлайн Gaeilgeoir

  • Глобальный модератор
  • Трижды герой
  • *****
  • Сообщений: 6542
  • Карма: +42/-12
    • Просмотр профиля
Re: Задачка по html
« Ответ #14 : 14 Апреля 2020, 00:10:15 »
  • 0
  • 0
Проверил, да -- этот способ работает. Только вместо "test" написать "<br/>"
большое спасибо  :yes: Сделал всё по инструкции, пока висим  :lol: