Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/56: Рейтинг темы: голосов - 56, средняя оценка - 4.52
6 / 6 / 1
Регистрация: 28.07.2014
Сообщений: 49
1

Как сохранить/перекодировать файл в UTF-8 из консоли?

15.03.2015, 21:27. Показов 10667. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
CMD путем перенаправления, может сохранять файл только в двух кодировках: ANSI(по умолчанию) и UNICODE (UCS-2 le)
например:

systeminfo > systeminfo.log (В Ansi)
cmd /U systeminfo > systeminfo.log (в UCS-2 le)


Мне же нужно чтобы файл был в кодировке UTF-8.
Отсюда вопрос, как можно стандартными средствами перекодировать с ANSI/UCS-2 в UTF-8?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2015, 21:27
Ответы с готовыми решениями:

Перекодировать файл в UTF-8
Сохраняю файл из TextBox2.Text IO.File.AppendAllText(My.Application.Info.DirectoryPath +...

Как програмно сохранить файл в utf-8?
Есть массив из AnsiString-ов. Эти строки я записываю в файл примерно следующим образом FILE* f;...

Как перекодировать адрес в utf-8 ?
Здравстуйте. Как из http://primer.ru/Птаха_-_Приоритеты (feat. Шарп).mp3 получить адрес...

Как перекодировать utf 8 в ANSI
Такая ситуация - берутся данные (на русском) из базы постгрес (там кодировка utf-8). необходимо...

5
6242 / 2117 / 334
Регистрация: 10.12.2013
Сообщений: 7,295
16.03.2015, 08:14 2
Цитата Сообщение от Vic345 Посмотреть сообщение
Отсюда вопрос, как можно стандартными средствами перекодировать с ANSI/UCS-2 в UTF-8?
Перекодировка текста (сборник кодов для различных кодовых страниц)

PS:
строго говоря, кодировка UCS-2( представлена в ISO 10646) - это не то же самое, что UTF-16;
UCS-2 - это устаревшая терминология и относится к периоду принятия стандарта Unicode 1.1( 1991-1996).
a термин UTF-16 относится к стандарту Unicode 2.0(июль 1996), когда были определены 'суррогатные пары'(https://msdn.microsoft.com/en-... s.85).aspx) ;

Windows начал использовать UTF-16LE в качестве внутренней кодировки( с изменением API ), начиная где-то с 2000-го года,
а до этого в нём вовсю цвeлa терминология( и соответственно API ) MBCS ( multi-byte character set )
UCS-2 всегда по умолчанию с тупым концом(BE), LE официально для ней определен не был.

разница между UTF8, UTF-16 и UTF-32:

UTF-8 - это последовательность от одного до четырёх 8-битных байт. ( ориентирована на internet )
UTF-16 - это последовательность от одной до двух 16-битных композиций. ( принята в Windows )
UTF-32 - это одна 32-битная композиция. ( используется в Unix )

Поэтому, возвращаясь к вопросу ТС:
1) термин ANSI - это расширенная(до 8 бит) таблица ASCII( 1960 год; 7бит ) скорее всего имелась в виду.
2) UCS-2 - это скорее всего UTF-16 имелась в виду
5
6 / 6 / 1
Регистрация: 28.07.2014
Сообщений: 49
16.03.2015, 09:51  [ТС] 3
"2) UCS-2 - это скорее всего UTF-16 имелась в виду" - Может быть и так, спорить не буду )
Но когда я сохраняю файл посредством "cmd /U /Q /C script >script.out" и после открываю в notepad++
то вижу кодировку UCS-2 LE w/o BOM. В скрипте используется только две каманды wmic и echo

А вообще спасибо за ссылку. Поразбираюсь.
0
Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
16.03.2015, 09:52 4
Цитата Сообщение от Vic345 Посмотреть сообщение
systeminfo > systeminfo.log (В Ansi)
Это не в ANSI, а в OEM-866.
0
6242 / 2117 / 334
Регистрация: 10.12.2013
Сообщений: 7,295
16.03.2015, 13:33 5
Цитата Сообщение от Vic345 Посмотреть сообщение
Но когда я сохраняю файл посредством "cmd /U /Q /C script >script.out" и после открываю в notepad++
может конечно Notepad++ настолько крут, что различает* UCS-2 и UTF-16 ... проверю вечерком.

(*) не просто по признаку есть BOM - UTF-16, нет BOM - UCS-2, а залезая вглубь и проверяя слова по словарю
0
Эксперт WindowsАвтор FAQ
18007 / 7708 / 892
Регистрация: 25.12.2011
Сообщений: 11,481
Записей в блоге: 16
16.03.2015, 14:21 6
Цитата Сообщение от volodin661 Посмотреть сообщение
не просто по признаку есть BOM
Я Вас умоляю. Notepad++ на данный момент тупой как пень.
В кодировках путается конкретно (особенно там, где касается 1251 или 866 открывать),
да и с юникодом бывает не все гладко.

а команда cmd /u как раз и записывает файл без BOM-а.
2
16.03.2015, 14:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2015, 14:21
Помогаю со студенческими работами здесь

Как перекодировать данные из windows-1251 в UTF-8?
Как перекодировать данные из windows-1251 в UTF-8? Заранее спасибо за совет!

PHP Storm и кодировка проекта, как перекодировать в UTF?
Как можно перекодировать проект? И вообще сделать, чтобы все проекты в utf создавались? Сделал...

Файл: Привести кодировку содержимого файла к кодировке консоли и сохранить результат как новый файл.
Задача такая: Программа должна получать на вход путь к текстовому файлу, анализировать его...

Кодировкой (1251 и UTF-8) как перекодировать или что с ней сделать
Пишу програму на 6 Builder C++ , вытягивает HTML текст с сайта. С одним сайтом все в порядке, когда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru