2014-01-20 3 views
0

У меня есть следующий код PowerShell:Unicode символы в сценарии PowerShell

$Content = python posh-unicode.py 
[System.IO.File]::WriteAllLines("posh-unicode.txt", $Content) 

posh-unicode.py является:

# -*- coding: utf-8 -*- 

unicodestr = "테스트" 

print(unicodestr) 

with open('posh-unicode-py.txt', 'wb') as f: 
    f.write(unicodestr) 

К сожалению, символы, написанные в posh-unicode.txt повреждены, как символы показаны Write-Host $Content ,

Когда я пишу в posh-unicode-py.txt прямо из Python, символы в порядке, поэтому я подозреваю, что это проблема PowerShell. Как это исправить? Может быть, так, как я называю сценарий Python, это неправильно?

FYI, я использую Windows 8.1 и PowerShell v4.0.

ответ

0

Никто, кроме вас, не знает, что именно создал ваш скрипт python. Это затрудняет вам помощь. Попробуйте указать, какая подробная кодировка вам может понадобиться. например

$filecontent = cat $myfile 
$Utf8NoBom = New-Object System.Text.UTF8Encoding($False) 
[System.IO.File]::WriteAllLines($myfile, $fileContent, $Utf8NoBom) 

Это попытка конвертировать $ myfile в UTF8 без спецификации.

ref. MSDN, .net Encoding Class - System.Text

+0

Спасибо, но, похоже, проблема заключается не в написании части, а в выходе из части скрипта python. – joon

Смежные вопросы