專案中有一個功能 在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(); } } }
更多java知識請關注java基礎教學欄位。
以上是java判斷是否亂碼的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!