最近在網站中要顯示中文,於是上網找了轉碼的方式,
以下是資料來源:
Unicode and HTML
來源:JavaWorld
//將中文轉成 16 進位 unicode 表示法,會得到像是 \u4E2D
out.print("
中 16 ="+"\\u"+Integer.toHexString("中華".charAt(0) & 0xffff));
//將中文轉成 10 進位 unicode 表示法(中括弧請自行拿掉,這裡加中括號是怕此處網頁顯示不出unicode)會得到像是 []20013[;] 的結果
out.print("
中 10 ="+"[]"+("中華".charAt(0) & 0xffff)+"[;]");
//或是 Integer.parseInt("4E2D",16) 也可以得到 20013
//將 unicode 轉回中文, 此處結果會是一個[中]字,當然,如果要將非 big 5 碼的 unicode 字寫入 ASCII 格式檔案中,是會變成亂碼的,所以輸出檔案格式要設定,如果是輸出在網頁上,就無所謂了
char c_Back = (char)Integer.parseInt("20013");
StringBuffer STSTR = new StringBuffer();
STSTR.append(c_Back);
out.print("
結果="+STSTR.toString());
發現這樣轉中文部份還是亂碼,暈了orz
不過發現在URL中,中文部份是正常的
用以下方法二:
java.net.URLEncoder.encode (tmpValue[1])
java.net.URLEncoder.encode (tmpValue[1],"UTF8")
不過還是不行阿,想想搞不好是因為在filter裡面有在進行轉碼的動作嗎?
拿掉之後測試還是失敗了,orz
是因為URL傳值的關係嗎?
被打敗了
沒有留言:
發佈留言