Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Изменение кодировки txt файла из ANSI в UTF-16 LE

Ответить
Настройки темы
CMD/BAT - [решено] Изменение кодировки txt файла из ANSI в UTF-16 LE

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25


Конфигурация

Профиль | Отправить PM | Цитировать


Как через командную строку изменить кодировку txt файла из ANSI в UTF-16 LE, без разницы сторонними утилитами или без них, самое главное чтоб тихо, без окошек.

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 15:25, 19-08-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


crashtuak, батник в ANSI кодировке, имя файла "File.txt":
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions

Set $FILE=File.txt
Set $TEMP=File.tmp

CHCP 1251
Echo яю>%$TEMP%
CMD /U /C Type %$FILE% >>%$TEMP%

If Exist %$TEMP% DEL /F/Q %$FILE%
REN %$TEMP% %$FILE%

Последний раз редактировалось amel27, 20-08-2009 в 04:17. Причина: очепятка

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:49, 19-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


amel27, канешна спасибо, но это не то что нужно. У меня есть файл в ANSI (так показал АкелПад). А мне надо тот файл переделать в кодировку UTF-16 LE (но чтоб когда я его открыл АкелПадом я увидел надпись UTF-16 LE вместо ANSI). Может будут варианты?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 19:49, 19-08-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


crashtuak, у меня АкелПад после перекодировки показывает UTF-16 LE:

1. создаем батник в WIN-кодировке (в блокноте);
2. создаем TXT-файл в ANSI, типа:
Код: Выделить весь код
CHCP 1251& FindStr /? >File.txt
3. запускаем батник и проверяем результат: всё на месте (с точностью до первого символа).

Само собой, в таком варианте файл не должен содержать управляющих CMD-символов типа "&^|".

Проблему первого символа (BOM) можно решить созданием эталонного файла из двух байт: "яю" (в ANSI), и добавлять его в начало полученного файла через COPY. Из сторонних утилит использую recode из комплекта UnxUtils, но она тоже сама не добавляет BOM.
Код: Выделить весь код
recode cp1251..utf16-le <ansi.txt >utf16le.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:56, 20-08-2009 | #4


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


вроде придумал как добавить BOM без COPY (текст батника в WIN-кодировке):
Код: Выделить весь код
<Nul >utf16le.txt Set /P $VAR=яю
recode cp1251..utf16-le <ansi.txt >>utf16le.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:14, 20-08-2009 | #5


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


amel27, у меня работает вот такой вариант:
Код: Выделить весь код
recode cp1251..utf16-le <ansi.txt >>utf16le.txt
И без
Код: Выделить весь код
<Nul >utf16le.txt Set /P $VAR=яю
Соответственно BOM нету. с
Код: Выделить весь код
<Nul >utf16le.txt Set /P $VAR=яю
BOM тоже никак не появляется. Щас буду както ровнять криворукость свою .

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 09:12, 20-08-2009 | #6


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Во блин код:
Код: Выделить весь код
recode cp1251..utf16-le <ansi.txt >>utf16le.txt
COPY /b 1.txt + utf16le.txt end.txt
ansi.txt - исходный текст
1.txt -
Цитата amel27:
эталонного файла из двух байт: "яю" (в ANSI) »
end.txt - выходной файл с BOM

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 09:32, 20-08-2009 | #7


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


amel27, а есть ли существенная разница между Win и Unix кодировками?
Стоил ли утруждаться, чтоб в выделенной области красовалось Win?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 10:52, 20-08-2009 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата crashtuak:
есть ли существенная разница между Win и Unix кодировками? »
в Win строки заканчиваются (обычно) на CRLF, а в Unix на LF (всегда)

Отправлено: 11:19, 20-08-2009 | #9


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


amel27, а как же тогда в Win переделать все?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 11:35, 20-08-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Изменение кодировки txt файла из ANSI в UTF-16 LE

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Автоматическая смена кодировки .txt файлов __sa__nya Скриптовые языки администрирования Windows 22 07-05-2018 02:24
C/C++ - Тип char, определение кодировки (UTF8 или ANSI) EvgeniyQQQ Программирование и базы данных 4 30-03-2013 01:06
CMD/BAT - [решено] печать txt файла Loki3D Скриптовые языки администрирования Windows 15 12-05-2009 16:35
[решено] PHP + XSTL | Смена кодировки результирующего файла Coutty Вебмастеру 4 08-12-2008 14:08
[решено] изменение кодировки файла через командную строку vagner_HATE Microsoft Windows 2000/XP 3 06-12-2006 20:34




 
Переход