首页 > 其他 > 详细

处理乱码问题

时间:2014-05-08 09:24:28      阅读:443      评论:0      收藏:0      [点我收藏+]

公司内部使用的feed程序读取本地文件存入DB时出现大量乱码问题,虽然qa/stage/live三套环境无论是DB编码配置,还是服务器系统编码都是相同的,却出现十分诡异的问题——qa/stage环境不能复现live的乱码问题。最终boss要求做一个程序监控,评估问题的情况以及后续跟踪bug是否真正修复。此问题最终证明root cause是使用getBytes()与new String(byte[], charset)的错误,即两者使用的charset不一致。值得记录的是监控程序

通过删除所有合法字符,留下非法字符的方式过滤出符合条件的记录

bubuko.com,布布扣
    List<String> invalidContent = new ArrayList<String>();
    String value;

    for (Entry<String, String> entry : getBodies(ids).entrySet()) {
      /**
       * &thinsp;--\\u2009
       * &lrm;--\\u200E
       */
      value = entry.getValue().replaceAll("[\\u0000-\\u05FF\\u2009\\u200E]", "");
      if (!"".equals(value)) {
        invalidContent.add(entry.getKey());
        log.error(entry.getKey() + ":" + value);
      }

    }
bubuko.com,布布扣

使用正则的unicode区间参考

http://en.wikibooks.org/wiki/Unicode/Character_reference/0000-0FFF
http://en.wikibooks.org/wiki/Unicode/Character_reference/F000-FFFF

处理乱码问题,布布扣,bubuko.com

处理乱码问题

原文:http://www.cnblogs.com/hiver/p/3714827.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!