ajax乱码

public class CharUtil {

      static String [] charSetA = new String[]{"iso8859-1", "utf-8", "gb2312", "gbk"};
      static String [] charSetB = new String[]{"utf-8", "iso8859-1", "gb2312", "gbk"};

      public static void main(String args[]) {
        String[] sa = new String[] {
            "abc", "109", ",?", "??2??????? ?", "?3", "?;:"};
        for (int i = 0; i < sa.length; i++) {
          System.out.println(sa[i] + "/t--->/t" + firm(sa[i]));
        }
      }

      /**
       * 判断变量是否为乱码(连续两个"??"即为乱码)
       * @param s String
       * @return boolean
       *  "true" --- 变量为乱码
       */
      public static boolean firm(String s) {
        for (int i = 0; i < s.length(); i++) {
          Character ch = new Character(s.charAt(i));
          if (ch.toString().getBytes().length == 1 && !verifySC(ch.charValue())) {
            return false;
          }
        }
        if (s.indexOf("??") != -1) {
          return false;
        }
        else if (s.indexOf("?") == 0) {
          return false;
        }
        else {
          return true;
        }
      }

      public static boolean verifySC(char c) {
        if ( (c <= 'z' && c >= 'a') || (c <= 'Z' && c >= 'A') ||
            (c <= '9' && c >= ' ') || (c == '?') || (c == ':') || (c == ';')) {
          return true;
        }
        return false;
      }

      public static String getChinese(String s){
          System.out.println("s :"+s);
        if(s==null){
          return "";
        }else if(firm(s)){
            System.out.println("firm(s)---->"+s);
          return s;
        }else{
          String sTemp = "";
          boolean isChinese = false;// 
          for(int i=0; i<charSetA.length&&!isChinese; i++){
            for(int j=0; j<charSetB.length&&!isChinese; j++){
              try{
                sTemp = new String(s.getBytes(charSetA[i]), charSetB[j]);
                System.out.println(" charSetA[i]:"+charSetA[i]+" charSetB[j]:"+charSetB[j]+" sTemp:"+sTemp);
              }catch(java.io.IOException e){
                //log.error("在做汉字转换时候出错",e);
                continue;
              }
              isChinese = firm(sTemp);
            }
          }
          System.out.println("isChinese?sTemp:"+(isChinese?sTemp:s));
          return isChinese?sTemp:s;
        }
      }
    }
/*########################总结###################################*/
通过调用getchinese即可转换成中文
在我使用时却遇到一些问题
var url = "ainfo.do?method=searchproxyer&r=" + Math.random()+"&proxyername="+proxyer11+"&curpage="+searcurpage;
//将变量放到url中 通过”get“,能够在服务端解码后正确显示
//将变量通过req.open("post",url,true)"发送送,req.send(     proxyername="+proxyer11+"&curpage="+searcurpage);这样发送服务端却是乱码,几种字符编码循环一次还是乱码。
   
      if(req){     
           req.open("GET",url,true);
       
           req.onreadystatechange = processLoadResponse;
    //      req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
          req.send(null);   
      }




/*########################每天写总结###################################*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值