項目中有一個功能 在IE中GET方式送出會産生亂碼 但有兩個入口都會走這同一段代碼
固不能直接轉碼,是以要進行判斷傳過來的該值是不是亂碼
可用以下方式驗證:
java.nio.charset.Charset.forName("GBK").newEncoder().canEncode("測試") //判斷是不是GBK編碼 即是否亂碼
- //使用request.getQueryString()擷取通過URL傳過來的值 有可能是亂碼 如:q=鿥
- String s = request.getQueryString();
- if(s!=null){
- if(!(java.nio.charset.Charset.forName("GBK").newEncoder().canEncode(s))){
- try {
- s = new String(request.getQueryString().getBytes("ISO-8859-1"),"UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- }
- }