c# - 处理特殊字符时出错

标签 c# xml escaping

我正在创建一个原子 XML 数据包作为 REST 服务请求的一部分。 但是,当 XML 中其中一个标记的值包含注册商标的符号时,就会出现问题。

XML 正在通过 WebRequest 作为“PUT”发送。当问题字符在 XML 中时,完整的 XML 包不会到达服务器。数据包被截断,我在服务器上看到错误“开始标记中出现意外的 EOF”。

我确实在服务器上注意到请求的第一部分(在被截断之前)包含问题字符“®”。我希望只看到“®”。

我认为我只需要担心 XML 中的这些字符:

双引号:"

单引号:'

小于:<

大于>

& 符号:&

如何转义或处理我的字符串,以便我可以毫无问题地发送任何字符?

最佳答案

Xml 可以用这种方式欺骗您。并不是某些字符无效,而是一大片 unicode 是 defined as valid ,除此之外的任何内容都是禁止的。在没有更复杂逻辑的情况下获得此权利的技巧是使用 CDATA section .

关于c# - 处理特殊字符时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6459049/

相关文章:

c# - 从 n 中获取 k 元素的所有组合的算法

java - 解码时对象方法出现问题?

git - 如何使用 MSBuild 发出 git 分支的 SHA1

elasticsearch - elasticsearch查找多个精确值-如何在值中转义冒号

c# - 将 2 个查询的结果合并为 1 个结果,然后传递给 DGV

c# - 如何使用 Linq 根据另一个列表过滤列表?

c# - Visual Studio 调试器进入 Azure 函数项目的非用户代码

python - 获取 element.tagName 的问题。使用 Python 和 xml.dom.minidom 解析 XML

java - 在 SAAJ 内操作 SAAJ/raw xml 访问中的命名空间前缀

r - 匹配 R 中包含转义字符的多个字符串