2010-07-01 39 views
0

嗨,將多字節字符轉換爲十六進制

我有一個傳入的文件將通過一個BizTalk映射器。我需要確定文件的某個字段中是否有3字節的中文字符(文件是xml)。我已經知道如何找到3字節的字符。但是,如何將其轉換爲十六進制值? 十六進制值是我將發送到輸出模式然後發送到DB2服務器。

謝謝。

回答

0

我假設你正在處理UTF-8。真的嗎?

如果是這樣,你想要的東西,如:

((C0 & 0xFFFF)時< < 12)| ((c1 & 0xFFFFFF)< < 6)| (c2 & 0xFFFFFF)

+0

非常感謝Scott。 我有一個代碼將char數組的字符長度轉換爲DBCS長度的代碼。你能幫我確定數據來自哪裏嗎? (c [length] == 32) if(c [length] == 32) c [length] =(char)12288; (c [length] <127) } c [length] =(char)(c [i] +65248); } 如何在將MBCS轉換爲DBCS時使用相同的方法? – lightyearsaway 2010-07-01 06:51:14

+0

我給出的公式基於UTF-8,它是一種特殊類型的多字節字符編碼。這是你的角色所在的編碼方案嗎?一種檢查方法是查看多字節字符中的3個字符。第一個的二進制表示應該以1110開頭,下一個2的二進制表示應該以10開頭。如果不是這樣,那麼你沒有UTF-8,並且我顯示的代碼將不起作用。如果這是真的,那麼我向您展示的代碼將從3個字符中「移除」Unicode的「控制位」(1110,10,10),並將剩餘的位組合成一個整數。 – 2010-07-01 13:13:20

相關問題