码迷,mamicode.com
首页 > 其他好文 > 详细

处理乱码问题

时间:2014-05-08 09:25:12      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   tar   

公司内部使用的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

处理乱码问题

标签:style   blog   class   code   java   tar   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!