2016-10-07 78 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)