Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 清理webservice for XML中的非标准字符_.net_Sql Server_Xml_Web Services - Fatal编程技术网

.net 清理webservice for XML中的非标准字符

.net 清理webservice for XML中的非标准字符,.net,sql-server,xml,web-services,.net,Sql Server,Xml,Web Services,我有一个包含用户列表的数据库,我偶尔会通过Web服务将该用户列表传递给远程机器。我接到一个来自我们远程设施的电话,说没有新用户出现 一项小小的研究发现了这个问题——Web服务将数据库中的用户列表作为XML文件提供,其中一个用户的名字中有一个非标准字符(“MaríA”)。目标PC会看到这个非标准字符并阻塞,因为XML被“破坏”,因此该点之后的所有记录都不会被处理 短期的解决办法很容易——玛丽亚变成了玛丽亚。突然间,所有的记录都可以毫无问题地处理。然而,长期的解决方案是我所关心的。我如何才能强制识别

我有一个包含用户列表的数据库,我偶尔会通过Web服务将该用户列表传递给远程机器。我接到一个来自我们远程设施的电话,说没有新用户出现

一项小小的研究发现了这个问题——Web服务将数据库中的用户列表作为XML文件提供,其中一个用户的名字中有一个非标准字符(“MaríA”)。目标PC会看到这个非标准字符并阻塞,因为XML被“破坏”,因此该点之后的所有记录都不会被处理

短期的解决办法很容易——玛丽亚变成了玛丽亚。突然间,所有的记录都可以毫无问题地处理。然而,长期的解决方案是我所关心的。我如何才能强制识别这些非标准字符

请注意,webservice只是获取数据库表的内容并将其作为XML输出;XML文件不是我正在手动生成的任何东西,而是Web服务的工作方式


提前感谢您的帮助

我猜您是在通过字符串连接创建XML。您应该使用
XmlWriter
来创建XML输出。它将负责非ascii字符、xml实体和许多其他内容的正确编码


如果不是这样的话,那么xml是正确构建的,xml解析代码有问题。

xml是由Web服务动态生成的。。。我声明一个数据集并将其指向表,然后webservice返回该数据集(在此过程中自动将其转换为XML)。使用者声明一个数据集并将其指向Web服务,从而自动将XML转换回数据集。我实际上并不直接处理XML;相反,.NET创建XML并在后端使用它。您会收到什么异常?在文本内容中发现无效字符。“”。找不到句柄为0的准备语句。找不到句柄为0的准备语句。sp_xml_removedocument:为参数1提供的值无效。XML分析错误0xc00ce508发生在第111285行,靠近XML文本“Mar”。该语句已终止。如果您无法控制web服务格式化(编码)XML的方式,则您别无选择,只能发送经过净化的数据。这是一篇关于如何去掉变音符号的文章