С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/190: Рейтинг темы: голосов - 190, средняя оценка - 4.57
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325

Преобразовать текстовый файл из ANSI в UTF-8

29.07.2016, 15:23. Показов 38211. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите, как из командной строки преобразовать текстовый файл из ANSI в UTF-8? Можно с использованием сторонних утилит.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2016, 15:23
Ответы с готовыми решениями:

Перекодировка текстового файла из ANSI в UTF-8
Здравствуйте, я нашел такой BAT файл, который перекодирует txt файл из ANSI в UNICODE Как его можно изменить, чтобы перекодировка...

Батником поменять кодировку с utf-8 в ansi, и наоборот
Подскажите пожалуйста как батником поменять кодировку с utf-8 в ansi, и наоборот?! файл текстовый . txt

Текстовый файл UTF-8 сохранить как текстовый файл ANSI
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как сделать это средствами c++? Среда Visual Studio 2010 ...

16
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
29.07.2016, 16:46
fredwriter, Перекодировка текста (сборник кодов для различных кодовых страниц)
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
29.07.2016, 17:14
Windows Batch file
1
2
3
@echo off
powershell /nologo /noprofile /command "get-content -encoding windows-1251 'file_in.txt'|out-file -encoding utf-8 'file_out.txt'"
exit
.
1
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
29.07.2016, 18:18  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
Windows Batch file
1
2
3
@echo off
powershell /nologo /noprofile /command "get-content -encoding windows-1251 'file_in.txt'|out-file -encoding utf-8 'file_out.txt'"
exit
Code
1
2
3
4
5
6
7
8
9
Get-Content : Не удается привязать параметр "Encoding". Не удается преобразовать значение "windows-1251" в тип "Microso
ft.PowerShell.Commands.FileSystemCmdletProviderEncoding". Ошибка: "Не удается сопоставить пустое имя идентификатора win
dows-1251 с допустимым именем перечислителя.  Укажите одно из следующих имен перечислителя и попробуйте еще раз:
Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, UTF32, Ascii, Default, Oem, BigEndianUTF32"
строка:1 знак:23
+ get-content -encoding windows-1251 'ANSI.txt'|out-file -encoding utf- ...
+                       ~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-Content], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.GetContentCommand
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
29.07.2016, 18:53
Поменяйте как просит:
Windows Batch file
1
2
3
@echo off
powershell /nologo /noprofile /command "get-content -encoding Ascii 'file_in.txt'|out-file -encoding UTF8 'file_out.txt'"
exit
.

Добавлено через 29 минут
Забыл что в PS свой список кодировок:
Code
1
2
3
4
5
6
7
8
ascii
BigEndianUnicode - UCS-2 Big Endian
default - кодировка операционной системы, в России Windows-1251
oem - OEM 866
Unicode - UCS-2 Little Endian
utf32
utf7
utf8
.
0
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
29.07.2016, 18:56  [ТС]
Спасибо большое, но нужно не сменить кодировку а преобразовать, как это делает, например Notepad++. В вашем примере русские символы превращаются в вопросики.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
29.07.2016, 20:50
Этот преобразовывает:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@set @x=0; /*
@echo off
call :Recode "file_in.txt" "file_out.txt" windows-1251 utf-8
exit
 
:Recode [исходный файл] [результирующий файл] [кодировка исходного файла] [кодировка результирующего файла]
  cscript.exe //nologo //e:jscript "%~f0" "%~1" "%~2" "%~3" "%~4"
exit/b
 
*/with (new ActiveXObject('ADODB.Stream')) {
  Charset = WScript.Arguments(2);
  Open();
  LoadFromFile (WScript.Arguments(0));
  Text = ReadText();
  Close();
  Charset = WScript.Arguments(3);
  Open();
  WriteText (Text);
  SaveToFile (WScript.Arguments(1), 2);
  Close();
}
.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.07.2016, 22:24
Цитата Сообщение от fredwriter Посмотреть сообщение
В вашем примере русские символы превращаются в вопросики.
Может, это как раз Notepad++ и открыл неправильно. Он имеет свойство часто неверно определять кодировку (особенно, если у файла нету BOM). Лучше удостоверится, выбрав в меню N++, "Кодировки" нужную.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.07.2016, 22:50
Ascii != windows-1251
Кодировка по умолчанию для русской локализации windows как раз windows-1251.
Windows Batch file
1
powershell /nologo /noprofile /command "get-content -encoding default 'file_1251.txt'|out-file -encoding UTF8 'file_utf8.txt'"
И никаких знаков вопроса в файле.
Если ваша кодировка по умолчанию отличается от win-1251 - уже одной строчкой не обойдешься, так как в powershell нет простого способа указать эту кодировку. Но и это не проблема по большому счету.
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,829
29.07.2016, 23:05
Windows Batch file
1
iconv -t utf-8 file.txt>file-new.txt
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.07.2016, 23:25
Если безусловно полезная утилита iconv окажется not found на windows, то немного .NET "сахара" от microsoft помогут избежать фрустрации :-)
Windows Batch file
1
2
3
powershell /nop "[IO.File]::ReadAllText('file_1251.txt',[Text.Encoding]::GetEncoding('windows-1251'))|out-file -encoding UTF8 'file_utf8.txt'"
# 2-ой вариант
powershell /nop "[IO.File]::WriteAllText('file_utf8.txt',[IO.File]::ReadAllText('file_1251.txt',[Text.Encoding]::GetEncoding('windows-1251')),[Text.Encoding]::GetEncoding('UTF-8'))"
PS: Код, конечно, страшный - особенно второй, но в нем уже можно указывать какие угодно входные и выходные кодировки.
0
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,829
29.07.2016, 23:48
если безусловно полезного powershell вкупе с .NET framework не окажется на вашем Windows XP,
не отчаивайтесь, спустя какой-то час-полтора вам удастся его установить.
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
30.07.2016, 14:59
Лучший ответ Сообщение было отмечено fredwriter как решение

Решение

Нет, замечание ТС
Цитата Сообщение от fredwriter Посмотреть сообщение
В вашем примере русские символы превращаются в вопросики.
действительно
правильно работает на PS таким образом:
Windows Batch file
1
2
3
@echo off
powershell /nologo /noprofile /command "get-content -encoding string 'file_in.txt'|out-file -encoding utf8 'file_out.txt'"
exit
.
1
 Аватар для volodin661
6671 / 2264 / 346
Регистрация: 10.12.2013
Сообщений: 7,829
30.07.2016, 21:45
я продолжу, обращаясь для определённости к Гарри,
вот появился пользователь и грамотно задал конкретный вопрос
подскажите, как из командной строки преобразовать текстовый файл из ANSI в UTF-8? Можно с использованием сторонних утилит.
то есть, от утилиты он ждёт принятия трёх параметров - входной кодировки, выходной кодировки и имени файла и
на выходе ожидает перекодированный файл.
Windows Batch file
1
iconv f cp1251 -t utf-8 file.txt>file-new.txt
a вот эту уходящую за горизонт колбасу ты называешь сахаром ?
Windows Batch file
1
powershell /nop "[IO.File]::WriteAllText('file_utf8.txt',[IO.File]::ReadAllText('file_1251.txt',[Text.Encoding]::GetEncoding('windows-1251')),[Text.Encoding]::GetEncoding('UTF-8'))"
0
30.07.2016, 22:17

Не по теме:

Цитата Сообщение от volodin661 Посмотреть сообщение
вот эту уходящую за горизонт колбасу ты называешь сахаром
Кавычки в слове 'сахар' (наверно, надо было удвоить) обозначили иронию фразы. Поэтому ответ: нет.
Но вряд ли стоит сравнивать готовую утилиту и код. Последний тоже можно превратить в exe с удобными опциями cmdline.

0
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
04.08.2016, 04:32  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
Windows Batch file
1
2
3
@echo off
powershell /nologo /noprofile /command "get-content -encoding string 'file_in.txt'|out-file -encoding utf8 'file_out.txt'"
exit
.
Спасибо, всё работает!
Вопрос:
-encoding string определяет кодировку файла? Или просто -encoding определяет? Этот | символ перенаправляет вывод куда скажем по идее?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
04.08.2016, 09:36
Цитата Сообщение от fredwriter Посмотреть сообщение
-encoding string определяет кодировку файла?
из 866 или 1251
Цитата Сообщение от fredwriter Посмотреть сообщение
Этот | символ перенаправляет вывод куда скажем
если имеется ввиду замена 'file_out.txt' на свое - да, иначе смотрите синтаксис Powershell, если надо конвертировать строку а не файл или что имеется ввиду?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.08.2016, 09:36
Помогаю со студенческими работами здесь

UTF-8 файл конвертирует и сохраняет как ANSI
Доброго времени суток. Подскажите ктонибудь пожалуйста что не так делаю? Файл формируется на 1c если брать его просто так то он в utf-8....

Обработка .txt кодировка ANSI и UTF-8 (буква "я" в ANSI воспринимается как EOF)
Есть следующий кусок кода: FILE* fp = fopen("G:\OPND1.txt", "r"); if (fp!=NULL) // если файл удалось открыть { while((ch =...

Запись результата в текстовый файл с кодировкой UTF-8
Всем доброго времени суток, Есть программа-тест, которая написана на Пайтоне. Человек отвечает на вопросы и в зависимости от ответов...

Прочитать в массив текстовый файл в кодировке UTF-16
Имеется текстовый файл в формате UNICODE (UTF-16). Необходимо прочитать его в массив. Вот программа: TCHAR InputArray; ...

Как можно прочитать файл текстовый в кодировке UTF-8?
Как можно прочитать файл текстовый в кодировке UTF-8?(при чтении c помощью FileSystemObject вместо русских букв другие символы)


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru