Войти

Показать полную графическую версию : [решено] ANSI->UTF-8 конвертер


The_Immortal
06-05-2013, 17:20
Ребят, подскажите, пожалуйста, нормальный конвертер из ANSI в UTF-8.
Есть множество xml-файлов с кодировкой ANSI.
Принимающая же программа распознает только UTF-8 :(

Гуглил, гуглил, но так и не нагуглил нормального решения.


Благодарю!

lxa85
06-05-2013, 17:31
The_Immortal, NotePad++
Множество - это сколько и как часто?

Mr.Benq
06-05-2013, 17:46
Гуглил, гуглил, но так и не нагуглил нормального решения. »
Плохо "гуглили" :)

конвертер из 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, что также неудобно.

Iska
06-05-2013, 20:04
PowerShell: windows - Batch-convert files for encoding - Super User (http://superuser.com/questions/27060/batch-convert-files-for-encoding).

lxa85
06-05-2013, 21:00
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)
Рекурсивную "Шагалку по директориям" могу прислать.

Iska
07-05-2013, 07:19
Хорошо бы ещё пару-тройку образцов пользуемых xml, дабы пощупать. Как там внутри с encoding.




© OSzone.net 2001-2012