我有以下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。
答案 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。