2014-01-20 44 views
0

我有以下PowerShell代码:Unicode字符

$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所示。

当我直接从Python中写入posh-unicode-py.txt时,字符很好,所以我怀疑这是PowerShell的问题。我该如何解决?也许我调用Python脚本的方式是错误的?

仅供参考,我正在使用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转换为没有BOM的UTF8。

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

+0

谢谢,但似乎问题不是来自写入部分,而是来自python脚本部分的读取输出。 – joon