大家好~~
近為了幫公司找出成本為零的項目,想要利用JSP + SERVLET +SQL 完成。
SQL 是原有的ERP 所建立使用的..定序是Chinese_Taiwan_Stroke_BIN
JSP 編碼是UTF-8
在servlet中這二行處理完後,就可以了..不要想太多..哈哈
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
JSP中也定義
< ~meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
這些天看了不少文件跟API
試了 vel_name1 = new String(vel_name1.getBytes("ISO-8859-1"),"UTF-8"); (依然亂碼)
及
CharsetDecoder decoder = Charset.forName("UTF-8").newDecoder();
(出現java.nio.charset.malformedinputexception: input length = 1)
結果看到某位大大在網上提示了
@page contentType 是給終端Client 上的Browser 上看的內容編碼
而 Page pageEncoding 是JSP編寫(撰寫)時的編碼 .. 是給JSP要翻成SERVLET時的編譯器看的
又~~~~
在另一位大大Po文上看到
當你有的網頁上有二個HTML 時,在裡面那個不要自訂編碼..
此時我了解到了..我不用去管SQL 出來的字..
我只要告訴SERVLET..輸出到前端時是用什麼編碼就好
也就是contentType 要跟JSP 上的相同
所以我的SERVLET上有這二行
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
其他的編碼或轉碼(getBytes)都拿掉...
YES...它就OK了
這就是我..迷霧二天的記錄..
謝謝看倌~~