Powershell不断转换为ascii

时间:2014-05-23 04:00:06

标签: powershell utf-8

我已按照指南进行操作:Use Windows PowerShell to Look for and Replace a Word in a Microsoft Word Document

我的问题是,如果我将UTF8字符串放入搜索字段,它会在进入单词应用程序之前转换为ASCII。

如果您只是复制并粘贴他的代码并将查找文本更改为日语:カルシウム

它将开始工作并搜索ascii等价物:ã,«ãƒ«ã,ã,ãƒ

我已经尝试了关于将输入和输出设置为UTF8的所有建议,我可以找到但似乎没有任何效果。我甚至无法让powershell控制台实际显示日文字符,我得到的只是盒子。我认为这可能与我只有3种字体的事实有关,也许没有一种可以在控制台中显示日文字符...但我不关心这一点,我希望能够发送UTF8中的日文字符用于查找和替换。

任何帮助?

2 个答案:

答案 0 :(得分:1)

对于那些不断将输出编码转换为ASCII或Unicode all the time,的人,您可以设置输出encoding to whatever encoding you want from Microsoft blog $OutputEncoding

  1. abstract class Figure { int x, y; abstract void changePosition(int newX, int newY); abstract void draw(); } class CircleObject extends Figure { void draw() { System.out.println("Draw method called"); } void changePosition(int newX, int newY){ } } class Kd extends Figure { void changePosition(int newX, int newY) { System.out.println("Change Position method called"); } void draw(){ } } //告诉您具有的默认编码
  2. PS C:\> $OutputEncoding //切换到控制台或您可以设置
  3. PS C:\> $OutputEncoding = [Console]::OutputEncoding //无论你想要什么,请查看日语
  4. $OutputEncoding = New-Object -typename System.Text.UTF8Encoding //验证 编码

答案 1 :(得分:0)

答案实际上很简单。如果将powershell脚本另存为UTF8,则字符编码不正确。您需要保存编码为“ 带有BOM的UTF8 ”的ps1-脚本,以使字符正确。