2016-10-07 51 views
0

从包含拉脱维亚首都(里加)的XML(UTF8编码)保存某些字符串时。里加将这个I与macron(Unicode) 带到DB2。将Unicode代码从Unicode转换为ISO8859-2并返回

数据库代码页不是Unicode,但不幸的是ISO8859-2。发生 转换和这个特殊的我获取与X'1A取代((explained here IBM docs))

当我再次使用相同的列来重现原始的XML我的验证失败:

An invalid XML character (Unicode: 0x1a) was found in the element content of the document. 

为什么他们选择无效的XML作为替代品的性格和做这种事情的首选方式是什么?

我们使用Java进行XML输入和输出,并且不需要使用macron保存我,某种替代字符可以很好,不会混淆XML。 过滤数据库代码页中不可表示的所有字符并不是一个好主意?

+0

我认为答案在您所指的链接中 - 不要使用字符数据类型来绑定XML值,而是使用XML或二进制代替。 – mustaccio

+0

在XML声明中添加“encoding = iso-8859-2”会有帮助吗? – Stavr00

+0

没有xml编码是固定的 – Levijatanu

回答

0

您是否尝试将列转换回unicode?

CAST(column AS VARCHAR(255) CCSID UNICODE)