天天看點

java--判斷是否亂碼

項目中有一個功能 在IE中GET方式送出會産生亂碼 但有兩個入口都會走這同一段代碼

固不能直接轉碼,是以要進行判斷傳過來的該值是不是亂碼

可用以下方式驗證:

java.nio.charset.Charset.forName("GBK").newEncoder().canEncode("測試") //判斷是不是GBK編碼 即是否亂碼           
    1. //使用request.getQueryString()擷取通過URL傳過來的值 有可能是亂碼 如:q=青春
    2. String s = request.getQueryString();
    3. if(s!=null){
    4. if(!(java.nio.charset.Charset.forName("GBK").newEncoder().canEncode(s))){
    5. try {
    6. s = new String(request.getQueryString().getBytes("ISO-8859-1"),"UTF-8");
    7. } catch (UnsupportedEncodingException e) {
    8. e.printStackTrace();
    9. }
    10. }
    11. }