項(xiàng)目中有一個(gè)功能 在IE中GET方式提交會(huì)產(chǎn)生亂碼 但有兩個(gè)入口都會(huì)走這同一段代碼。
固不能直接轉(zhuǎn)碼,所以要進(jìn)行判斷傳過來的該值是不是亂碼。
可用以下方式驗(yàn)證:
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(); } } }