PowerShell脚本中的Unicode字符

时间:2014-01-20 14:30:34

标签: 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

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

仅供参考,我使用的是Windows 8.1和PowerShell v4.0。

1 个答案:

答案 0 :(得分:0)

除了你之外,没有人知道你的python脚本到底是什么。这使你很难帮助你。 尝试指定您可能需要的详细编码。 e.g。

$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