从包含拉脱维亚首都 (Rīga) 的 XML(UTF8 编码)中保存一些字符串时。Riga 将这个 I 与 macron ( Unicode ) 一起提供给 DB2。
数据库代码页不是 Unicode,但不幸的是 ISO8859-2。发生转换,这个特殊的 I 被 X'1A 取代((在此处解释 IBM 文档))
同样,当我使用相同的列来重现原始 XML 时,我的验证失败了:
An invalid XML character (Unicode: 0x1a) was found in the element content of the document.
他们为什么选择无效的 XML 字符作为替换,做这种事情的首选方法是什么?
我们使用 Java 进行 XML 输入和输出,不需要用宏保存 I,某种替换字符就可以了,一种不会与 XML 混淆的字符。过滤所有在数据库代码页中不可表示的字符不是一个好主意吗?