2017-02-02 3 views
0

У меня есть файл test.txt, который содержит в себе один китайский символ, .Powershell Chinese encoding error

Этот персонаж выглядит так

enter image description here

под видом HEX-редактора.

Если у меня get-content test.txt | Out-File test_output.txt, содержание test_output.txt отличается от test.txt. Почему это хапанское?

Я пробовал все параметры кодирования, перечисленные here ("Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "по умолчанию", и "OEM"), но ни один из них не правильно преображает китайский характер.

Как я могу правильно перевести китайские символы с помощью Get-Content и Out-File?

Кодировка, e4 b8 ad, выглядит как URLencode из , поэтому все параметры кодирования не совместимы с этим китайским символом?

Я использую Notepad++ и Notepad ++ hex-editor plugin в качестве текстового редактора и шестнадцатеричного редактора соответственно.

+0

Какая кодировка используется в файле? То есть, что [BOM] (https://en.wikipedia.org/wiki/Byte_order_mark) есть? – vonPryz

+0

Кодировка UTF-8 без спецификации. – Brian

ответ

0

Я попытался get-content test.txt -encoding UTF8 | Out-File test_output.txt -encoding UTF8

Мои test.txt является "e4 b8 объявление 0a". И выход «ef bb bf e4 b8 ad 0d 0a«

test.txt находится в UTF-8.

Get-Content не распознает UTF-8, если только с BOM. Out-File использует UTF-16 по умолчанию.

Нужно указать кодировку для обеих команд