2011-10-26 63 views
0

我已經生成了一個xml文檔作爲文本文件,指出它應該編碼爲UTF-8。當我檢查模式的符合性時,它會報告文件中存在非法字符。將字符串從一種編碼轉換爲另一種編碼

An invalid character was found in text content. 

可疑字符的一個字節值爲0x92

在visual basic中,我使用DOMDocument60類型的變量dom;並執行以下操作:

Set nod = dom.createElement("dc.description") 
nod.text = Trim$(Nz(rs!mDescription, "")) 

這是錯誤的來源。我有一種感覺,我需要進行字符集轉換,以便將可疑字符正確編碼爲utf-8。

我有的具體問題是:

1)什麼字符集是我的出發點?該字符串正在從訪問2010數據庫(備忘錄類型)

2)如何將它轉換爲UTF-8

我不知道如何做到這一點。我對VBA不是很熟悉。

回答

0

造成你悲傷的性格被稱爲智能報價或捲曲報價。它看起來像這樣:'

這個問題不是真正的Access相關,除了你必須在Access/VBA中找到方法來處理它。無論出於何種原因,您的XML都包含無效的XML字符。

我可以考慮兩種選擇。第一個選項是用標準的非智能報價替換字符。下面是一些非優雅的代碼快速更換所有四個不同的可能智能引號的一次:

Replace(Replace(Replace(Replace(MyString, Chr(147), Chr(34)), Chr(148), Chr(34)), Chr(145), Chr(39)), Chr(146), Chr(39)) 

第二個選項是替換有問題的字符,假設你真正想要他們,用適當的XML/HTML字符代碼其中,對於您遇到的問題的具體特點,就是:

’ 

你可能會考慮運行你更換輸入的數據,以便它存儲從一開始就有效字符。

+0

謝謝HK1。我使用了第二個建議。我還有一些不屬於「UTF-8」的其他字符,並對它們進行適當的轉換。謝謝你看過去我的問題。很有幫助。 –

相關問題