2009-08-11 30 views
0

日元馬克在後的字符代碼轉換與未來關於Java

  • 0x5c的兩種方式(ASCII)
  • 的0xA5(UTF-8)

當我做表達Java6中的0xA5的POST,Struts2的環境,在我輸出的日誌中,我變成了0x5C。

在哪裏將字符代碼替換執行具體?

回答

1

我相信你問的是什麼時候日元符號會變成ASCII--答案是當底層的默認字符編碼從UTF-8變爲ASCII時。這可能在一些地方發生:

(JSP,Freemarker的?)

你能提供一些關於你目前爲這些設置的更多信息嗎?

0

我認爲問題不在於字符轉換,而在於轉換或損壞。 ASCII中的字符5C是'\'。對我來說,什麼樣的錯誤轉換會使A5變成5C並不是顯而易見的。日元符號之前或之後的其他角色是否也被錯誤轉換?

開始尋找問題原因的前兩個地方是代碼將字符串轉換爲byte []並返回的位置。在客戶端轉換POST數據時,應確保您設置在HTTP請求Content-Type標頭中使用的字符集。然後在服務器端,確保您的代碼使用傳入請求的Content-Type標頭中指定的字符集。