zoukankan      html  css  js  c++  java
  • Atitit 乱码的检测与纠正总结 目录 1. Atitit.request 乱码的检测与解决 attilax总结 1 1.1. 乱码的检测,,可以检测,列徐俩个问好?? 1 1.2. 使用常用汉字

    Atitit 乱码的检测与纠正总结

    目录

    1. Atitit.request 乱码的检测与解决 attilax总结 1

    1.1. 乱码的检测,,可以检测,列徐俩个问好?? 1

    1.2. 使用常用汉字检测。如果发现常用汉字 2

    1.3. 英文大小写字母,数字以及附加一个小数点 3

    1.4. 检测阈值60% 3

    2. 乱码的纠正 3

    2.1. 常用乱码探测 3

    2.2. 决策树 3

    2.3. 使用策略模式逐一探测常用编码 3

    2.4. Req map乱码的纠正 4

    3. 调用 指定纠正乱码的列 为了稳定性 4

    4. 性能与稳定性 5

    4.1. Cache guava 5

    4.2. 调用foreach try catch 5

    5. 保障正确性 与稳定性 5

    5.1. 指定纠正列白名单机制 5

    5.2. 字库文件编码侦测 5

    5.3. 字库长度探测与提示 5

    5.4. Str2list  set的时候空字符检测与重整 5

    5.5. 检测阈值开放 5

    6. Ref 5

    1. Atitit.request 乱码的检测与解决 attilax总结

    乱码

    1.1. 乱码的检测,,可以检测,列徐俩个问好??

    if(value.contains("??"))

    value=v_oriagal

    response.setCharacterEncoding("utf-8");

    response.setContentType("text/html;charset=UTF-8");

    1.2. 使用常用汉字检测。如果发现常用汉字

    使用常用汉字2500与英文大小写字母,数字以及附加一个小数点。检测阈值60
    %

    private static boolean isCoreectDecode(String s) {

    // Strutil.toSet(compressableMimeType, string)

    String f = "";

    try {

    f = FileUtils.readFileToString(new File(pathx.classPath() + File.separator + "com/attilax/web/2500.txt"),

    "utf8");

    } catch (IOException e) {

    throw new RuntimeException(e);

    }

    f = f + "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.";

    charset = strService.toSetNoSplitor(f);

    List<String> li_sa =strService. toListNoSplitor(s);

    int correctCnt = 0;

    for (String ch : li_sa) {

    if (charset.contains(ch))

    correctCnt++;

    }

    if ((float) correctCnt / (float) s.length() > 0.6)

    return true;

    else

    return false;

    }

     

    1.3. 英文大小写字母,数字以及附加一个小数点

    1.4. 检测阈值60%

    2. 乱码的纠正

    2.1. 常用乱码探测

    2.2. 决策树

    2.3. 使用策略模式逐一探测常用编码

     

    public static String getCorrectDecodeTxt(String s) {

     

    if (isCoreectDecode(s))

    return s;

    else

    {

    String  iso2gbk= encodeService.iso2gbk(s);

    if(isCoreectDecode(iso2gbk))

    return iso2gbk;

    String  iso2utf= encodeService.iso2utf(s);

    if(isCoreectDecode(iso2utf))

    return iso2utf;

    String  gbk2utf8= encodeService.gbk2utf8(s);

    if(isCoreectDecode(gbk2utf8))

    return gbk2utf8;

    String  utf2gbk= encodeService.utf2gbk(s);

    if(isCoreectDecode(utf2gbk))

    return utf2gbk;

    }

     

    return s;

    }

     

    2.4. Req map乱码的纠正

     

    public static void setCorrectDecodeText(Map<String, Object> paramMap, String keys) {

    String[] sa=keys.split(",");

    for (String k : sa) {

    try {

    String correctDecodeTxt = encodeService.getCorrectDecodeTxt(paramMap.get(k).toString());

     paramMap.put(k, correctDecodeTxt);

    } catch (Exception e) {

    e.printStackTrace();

    }

     

    }

    }

     

     

    3. 调用 指定纠正乱码的列 为了稳定性

    防止过纠正

     

        public ModelVo weizhonRec_save() throws Exception{

    ModelVo modelVo = new ModelVo();

           

        Map<String,Object> paramMap =reqService.putMapByReqParams("VCF08,VAA07,VCF09,VCF65,VCF66,VCF67,VCF68,VCF69,VCF70,VCF09A,VCF18,VAA05,BCE03A,VAA01,VCF11,BCE01A,room",request1);

         

       

       encodeService.setCorrectDecodeText(paramMap,"BCE03A,VCF65,VCF66,VCF67,VCF68,VCF69,VCF70");

       // String correctDecodeTxt = encodeService.getCorrectDecodeTxt(s);

    //try{

      vaf2Bo.weizhonRec_save(paramMap);

     

    4. 性能与稳定性

    4.1. Cache guava

    4.2. 调用foreach try catch

    5. 保障正确性 与稳定性

    5.1.  指定纠正列白名单机制

    5.2. 字库文件编码侦测

    5.3. 字库长度探测与提示

    5.4. Str2list  set的时候空字符检测与重整

    5.5. 检测阈值开放

    6. Ref

    /honurse/src/com/attilax/web/encodeService.java

    response设置编码的三种方式 - 微尘的世界 - ITeye技术网站.html

    java检测乱码原编码 - CSDN博客.html  todo

    7. Mindchart

    · 1. 乱码检测

    · 1.1. 乱码的检测,,可以检测,列徐俩个问好?? 1

    · 1.2. 使用常用汉字检测。如果发现常用汉字 2

    · 1.3. 英文大小写字母,数字以及附加一个小数点 3

    · 1.4. 检测阈值60% 3

    · 2. 乱码的纠正 3

    · 2.1. 常用乱码探测 3

    · 2.2. 决策树 3

    · 2.3. 使用策略模式逐一探测常用编码 3

    · 2.4. Req map乱码的纠正 4

    · 3. 调用 指定纠正乱码的列 为了稳定性 4

    · 4. 性能与稳定性 5

    · 4.1. Cache guava 5

    · 4.2. 调用foreach try catch 5

    · 5. 保障正确性 与稳定性 5

    · 5.1. 指定纠正列白名单机制 5

    · 5.2. 字库文件编码侦测 5

    · 5.3. 字库长度探测与提示 5

    · 5.4. Str2list  set的时候空字符检测与重整 5

    · 5.5. 检测阈值开放 5

  • 相关阅读:
    php和c++自带的排序算法
    谷歌Chrome浏览器离线安装包
    js阻止表单提交
    Sublime text中文乱码解决办法
    不会飞的鸟
    linux命令**50
    linux基础2
    linux基础1
    css3实现单行文本溢出显示省略号
    null和undefined的区别
  • 原文地址:https://www.cnblogs.com/attilax/p/15197623.html
Copyright © 2011-2022 走看看