0

有什么方法可以阻止 Powershell 转换/读取文件中的 html 字符?

如果我只是打开然后保存一个 xml 文件:

[xml]$xml = get-content "c:\file.xml"
$xml.save("c:\file.xml") 

以下键已更改

从:

<add key="TimeFormat" value="h:mm&#160;tt"/>

至:

<add key="TimeFormat" value="h:mm tt" />

关键是,我不希望它更改任何文本,我希望 HTML 实体保持原样。

谢谢

4

1 回答 1

0

&#160;( 0xA0) 是 ISO-8859-1 中的不间断空格,但在 UTF-8 中不是有效字符。可能发生以下两种情况之一:

  1. Powershell 期望(或您的 XML 文件声称是)UTF-8,并且 Powershell 正在默默地用空格替换无效字符。如果是这种情况,它真的应该抱怨一条错误消息。
  2. (更有可能)XML 文件具有指定 ISO-8859-1 的正确标头,并且 Powershell 正在用实际的“0xA0”字节替换实体。就 XML 标准而言,这是一件非常有效的事情,您必须查看 Powershell 的 XML 文档,看看是否可以为 XML 序列化程序提供选项以防止这种转换。
于 2013-04-24T15:55:58.463 回答