2012-01-27 79 views
1

我有以下代码从mht文件中检索日语或本地化字符串。我已经使用了几乎所有在这里列出的编码参数(未知,字符串,unicode,bigendianunicode,utf8,utf7,utf32,ascii,default,oem)并进行了验证。它总是打印垃圾字符,而不是原来的中文或日文名称从文件中检索日语或本地化字符串

$log = "c:\scripts\meta.mht" 
$patt = 'title' 
$indx = Select-String $patt $log | ForEach-Object {$_.LineNumber} 
write-host (Get-Content $log)[$indx] | out-file -encoding string c:\scripts\temp1.xml 

有人可以帮助我如何打印本地化的字符串?我应该使用哪个编码参数? 我已经尝试过所有列出的参数,但没有运气(未知,字符串,unicode,bigendianunicode,utf8,utf7,utf32,ascii,默认,oem)

在此先感谢。

回答

4

试着改变你的编码Get-Content这样的:

write-host (Get-Content -Path $log -Encoding UTF8)[$indx] | out-file -encoding UTF8 c:\scripts\temp1.xml 

我不知道,如果你需要UTF8或UNICODE,尝试既为Get-ContentOut-File

+0

我很满意这个解决方案......它的工作原理非常完美。但我有一个问题,UTF8支持所有本地化的语言字符串。将来,我将使用大约104种本地化语言。 – 2012-01-27 01:37:53

+0

@jakkpraveen你应该很好用UTF8继续前进。它可以编码任何Unicode字符。看看这篇文章(http://en.wikipedia.org/wiki/UTF-8#General)了解更多信息。顺便说一句 - 很高兴帮助你,因为这回答你的问题,请接受它作为接受的答案。谢谢。 – 2012-01-27 02:38:38