Показать полную графическую версию : [решено] ANSI->UTF-8 конвертер
The_Immortal
06-05-2013, 17:20
Ребят, подскажите, пожалуйста, нормальный конвертер из ANSI в UTF-8.
Есть множество xml-файлов с кодировкой ANSI.
Принимающая же программа распознает только UTF-8 :(
Гуглил, гуглил, но так и не нагуглил нормального решения.
Благодарю!
The_Immortal, NotePad++
Множество - это сколько и как часто?
Гуглил, гуглил, но так и не нагуглил нормального решения. »
Плохо "гуглили" :)
конвертер из ANSI в UTF-8. »
Можно еще ANSI/UTF-8 Конвертер v.1.1 (http://xakzona.ru/2011/04/07/ansiutf-8-%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B5%D1%80-v-1-1/)
The_Immortal
06-05-2013, 17:46
lxa85, NotePad++ »
Вот он как раз и хреновенько с этой задачей справляется. Хотя, возможно, я что-то не так делаю:
98463
Далее выбираю: "Кодировки - Кодировать в UTF-8".
Вот результат:
98464
Множество - это сколько и как часто? »
В районе нескольких сотен, раскиданных по разным каталогам. Как часто - периодически :)
The_Immortal
06-05-2013, 19:19
Mr.Benq, Цитата Mr.Benq:
Можно еще ANSI/UTF-8 Конвертер v.1.1 »
Недостатки:
1) видит только содержимое каталога, в котором находится сам исполняемый файл. Т.к. каталогов у меня куча - это очень неудобно;
2) конвертирует нормальным образом только txt (по крайней мере не xml) - приходится менять расширение на txt, конвертировать, а потом расширение возвращать опять на xml, что также неудобно.
PowerShell: windows - Batch-convert files for encoding - Super User (http://superuser.com/questions/27060/batch-convert-files-for-encoding).
The_Immortal, надо выбирать "Преобразовать в UTF-8".
Для Notepad++ возможно придется писать скрипт или макрос.
Развивая тему текстовых процессоров, можно попробовать посмотреть в сторону "sublime text 2". Этот редактор платный, но имеет достаточно широкие возможности.
----
Можно продолжить вариант предложенный Iska, что будет более правильно.
(я вот хоть убейся сходу не могу найти нормальной документации про -encoding, хотя вроде правильные вопросы гуглу задаю, про msdn все дела :( )
Нашел! Через справку оболочки
-Кодирование <string>
Задает тип кодировки, используемой в файле. Допустимые значения: "Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default" и "OEM". По умолчанию используется кодировка "Unicode".
Значение "Default" соответствует кодировке текущей кодовой страницы ANSI.
"OEM" соответствует идентификатору кодовой страницы текущего производителя оригинального оборудования для операционной системы.
Пример 3
C:\PS>$a = get-process
C:\PS> out-file -filepath C:\Test1\process.txt -inputobject $a -encoding ASCII -width 50
Описание
-----------
Эти команды отправляют список процессов, выполняемых на компьютере, в файл Process.txt. Текст имеет кодировку ASCII, чтобы его могли обрабатывать программы поиска, такие как Findstr и Grep. По умолчанию командлет Out-File использует формат Unicode.
Первая команда получает список процессов и сохраняет его в переменной $a. Вторая команда с помощью командлета Out-File отправляет список процессов в файл Process.txt.
Параметр InputObject указывает, что ввод хранится в переменной $a. Параметр Encoding используется для преобразования вывода в формат ASCII. Параметр Width ограничивает длину каждой строки в файле 50 знаками. Так как строки вывода после 50 знаков усекаются, самый правый столбец таблицы процессов не выводится.
Поубивал бы!
---
В качестве альтернативы можно предложить использовать Python. В ряде случаев (проблема вывода информации) он мне понятней. stackoverflow how-do-i-convert-a-files-format-from-unicode-to-ascii-using-python (http://stackoverflow.com/questions/175240/how-do-i-convert-a-files-format-from-unicode-to-ascii-using-python)
Рекурсивную "Шагалку по директориям" могу прислать.
Хорошо бы ещё пару-тройку образцов пользуемых xml, дабы пощупать. Как там внутри с encoding.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.