Как исправить unicode имена файлов?

У меня есть Windows 7 с файловой системой NTFS. У меня есть имена файлов и имена каталогов как:

Kispál és a Borz - 02 - Tökéletes Helyettes

Я хочу преобразовать их к:

Kispál és a Borz - 02 - Tökéletes Helyettes

Файловая система способна к хранению имен файлов как フリー百科事典, таким образом, это, конечно, имеет поддержку unicode.

Поскольку я воображаю историю, давным-давно они были прекрасны. Затем они были переданы от UTF-8 до латинской 1 файловой системы, затем обратно к этому UTF-8, поддерживающему файловую систему. В теории вся информация там, я мог записать программу в C для фиксации этих символов, но я предполагаю, что кто-то где-нибудь уже сделал это.

Вы знаете какую-либо утилиту, которая может сделать преобразование?

3
задан 18.05.2011, 11:04

0 ответов

Я записал C / гибрид C++, который делает часть перевода (ничего не переименовывает, просто преобразовывает плохие последовательности байта в хорошие). Можно загрузить его с помощью ссылки в конце этого сообщения.

Входной файл декодируется как поток UTF-8 в последовательность положения кода UNICODE, которая затем НЕ преобразовывается ни в какую другую кодовую страницу. Все положения кода находятся под 256, они представляют исходную UTF-8 последовательность байта строки. Таким образом, я просто пишу эти позиции кода байтов к выводу. Результатом является корректная строка UTF-8. Это все еще не приложение для моей проблемы, но ядро решения.

Программа записана и протестирована в соответствии с Linux, но должна работать над любой ОС. Пример использования:

nil@hippy:~/playground/c++$ g++ utf8decode.cpp -o utf8decode
nil@hippy:~/playground/c++$ cat > file
Kispál és a Borz - 02 - Tökéletes Helyettes
nil@hippy:~/playground/c++$ cat file | ./utf8decode
Kispál és a Borz - 02 - Tökéletes Helyettes
Characters found: 48
nil@hippy:~/playground/c++$

Я записал счетчик символов UTF-8 прежде, и я изменил это. Я havn't, записанный целая программа за час. Источник: http://pastebin.com/Hy7tVt5A http://pastebin.com/NFJUP0R5

0
ответ дан 08.12.2019, 02:16

Теги

Похожие вопросы