我们有来自外部系统的通过soap信封的xml消息。如果有一个编码头,我们就使用它,否则我们提供一个UTF-8。
最近,我们收到了一些带有有趣字符的消息,比如反转问号:?、重音字母等
我们处理这些消息的系统无法解析此消息。我注意到这些XML的格式是iso-8859-1,所以我试着把它改为UTF-8,看看解析器是否能正常工作,但还是不行。
我知道UTF-8支持的范围更广,所以我在字符集表中查看了iso-8859-1:http://en.wikipedia.org/wiki/ISO/IEC_8859-1。似乎反转的问号,重音字母是支持的。
我遇到了困难,我真的很感谢你的帮助!谢谢!
C++/stl代码使用xerces-c 2.7.0在x86 linux机器上使用gnu编译器3.4编译。
发布于 2013-03-05 00:00:06
正如评论所指出的,XML阅读器不一定支持“特殊”字符。这不是xerces-c独有的问题,在多个版本的JavaScript XML解析器中也会出现这种问题。我最终基于下面的表格使用&#nnn;命名法解决了这个问题(例如,南美洲的河流名称包含各种重音字母,这些字母在UTF-8中编码为多个字符):http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
https://stackoverflow.com/questions/15204914
复制相似问题