2012-06-19 49 views
0

我有一個Java servlet通過HTTP GET請求從上游系統接收數據。此請求包含一個名爲「text」的參數,另一個名爲「charset」,指示文本參數如何編碼:解碼UTF-16文本

如果我指示上游系統發送文本並調試servlet請求params,我會看到以下:

request.getParameter("charset") == "UTF-16LE" 
request.getParameter("text").getBytes() == [0, 84, 1, 0] 

code points(十六進制)在這個字符串中的兩個人物是:

[T] 0054 
[Ā] 0100 

我無法弄清楚如何將這種byte[]轉換回字符串"TĀ"。我應該提到我並不完全相信charset,並懷疑它可能使用UTF-16BE

回答

0

你爲什麼要打電話的getBytes()呢?您已經將該參數作爲字符串。在不指定字符集的情況下調用getBytes()只是一個調整數據的機會。