PowerShell V2执行含日文的管道命令乱码,求解决方法
PowerShell V2 中日文管道到Ruby乱码的解决方法
乱码根源是PowerShell V2管道输出默认采用UTF-16LE编码,而Ruby默认读取编码和它不匹配,导致日文无法正常解析。以下是几种可行的解决办法:
直接指定Ruby输入编码为UTF-16LE,转成UTF-8输出:
echo "すみません" | ruby -e "Encoding.default_external = Encoding::UTF_16LE; puts gets.encode('UTF-8')"先将内容写入UTF-8文件再让Ruby读取(适合复杂场景):
"すみません" | Out-File -Encoding utf8 temp.txt; ruby -e "puts File.read('temp.txt')"; Remove-Item temp.txt切换控制台编码为UTF-8后执行命令(全局生效,注意可能影响其他命令):
chcp 65001 echo "すみません" | ruby -e "Encoding.default_external = Encoding::UTF_8; puts gets"
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

