/**
   * 用filterOffUtf8Mb4
   * Description: 过滤率四个字节的utf-8字符(emoji表情符),替换成四个空格。
   *         四字节utf-8字符mysql存储报错 
   * @Version1.0
   * @param s
   * @return
   * @throws UnsupportedEncodingException 
   * @throws Exception
   */
  public static String parseUtf8(String s) throws UnsupportedEncodingException {
    byte[] b = s.getBytes("utf-8");
    for(int i=0, len=b.length; i<len; i++){
      if ((b[i] & 0xF8) == 0xF0) {//F8=1111 1000,F0=1111 0000过滤4位UTF8编码(字头11110xxx)
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
      }
      else if ((b[i] & 0xFC) == 0xF8) {//FC=1111 1100,F8=1111 1000过滤5位UTF8编码(字头111110xx)
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
      }
      else if ((b[i] & 0xFE) == 0xFC) {//FE=1111 1110,FC=1111 1100,过滤6位UTF8编码(字头1111110x)
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
        b[i++] = 32;
      }
    }
    return new String(b, "utf-8");

  }

最新文章

  1. ubuntu下rhythmbox歌名显示乱码问题解决
  2. Node.js Express 路由文件分类
  3. POJ 2104&amp;HDU 2665 Kth number(主席树入门+离散化)
  4. java基础语法知识
  5. SVG 矢量图形格式
  6. java反射技术
  7. querySelectorAll 方法相比 getElementsBy 系列方法有什么区别
  8. UNIX网络编程--读书笔记
  9. Oracle 10g的空间管理
  10. Ubuntu16.04下Office替代品Office Online
  11. LeetCode 292. Nim Game (取物游戏)
  12. 解决Eclipse中无法查看Java源码
  13. Scrapyd
  14. 带你领略Linux系统发展及版本更迭
  15. vue axios上传文件实例
  16. 在html中做表格以及给表格设置高宽字体居中和表格线的粗细
  17. 1.7Oob 构造方法
  18. [skill][graphviz] 到底用什么画图: graphviz/inkscape/yed
  19. Scaleform 中的 3D视角相关研究
  20. Golang操作Redis

热门文章

  1. POJ 2386 Lake Counting (水题,DFS)
  2. spring+jpg环境下,spring实现文件上传
  3. 数据库:mongodb与关系型数据库相比的优缺点
  4. Quartz.NET 2.0 学习笔记(1) :Quartz.NET简介
  5. Spring MVC体系结构
  6. as自定义菜单。
  7. 【ps】gif动态图白边问题
  8. Android 通过xml 自定义图片
  9. memcached Logging
  10. 使用JDK开发Servlet程序