java过滤非汉字的utf8的字符
来源:互联网 发布:软件开发公司内部流程 编辑:程序博客网 时间:2024/05/05 16:30
http://outofmemory.cn/code-snippet/2616/java-guolv-negate-hanzi-utf8-charaeter
static public String filterOffUtf8Mb4(String text) throws UnsupportedEncodingException { byte[] bytes = text.getBytes("utf-8"); ByteBuffer buffer = ByteBuffer.allocate(bytes.length); int i = 0; while (i < bytes.length) { short b = bytes[i]; if (b > 0) { buffer.put(bytes[i++]); continue; } b += 256; if ((b ^ 0xC0) >> 4 == 0) { buffer.put(bytes, i, 2); i += 2; } else if ((b ^ 0xE0) >> 4 == 0) { buffer.put(bytes, i, 3); i += 3; } else if ((b ^ 0xF0) >> 4 == 0) { i += 4; } } buffer.flip(); return new String(buffer.array(), "utf-8"); }utf8是变长字符集,单个字符占用1~4个字节。mysql在选择utf8字符集时,最多只能存储3个字节的utf8字符,如果想要保存任意的utf8字符,数据必须用utf8mb4字符集,有些情况下,不能变更已选定的字符集,只好不得以而为之,把输入中的4个字节的utf8字符全部过滤掉,好在,utf8字符集中,汉字是3个字节的。
0 1
- java过滤非汉字的utf8的字符
- 过滤utf8 字符中超过三个字节的字符,或者非utf8字符
- java 过滤非数字字符
- Nodejs抓取非utf8字符编码的页面
- utf8编码的字符(如汉字 占三个字节)用啥字符数据类型储存 C++
- 用Java语言将utf8编码的汉字还原
- PHP中如何过滤掉非汉字字符?
- 一个自定义的用语过滤非字符的Lucene分析器
- 截取网页post回来的字符,把它转成正确的汉字 utf8
- 正则表达式怎么匹配非汉字非字母非数字之外的字符
- 【java】位、字节、汉字、字符的关系
- FILTER过滤JAVA WEB的字符编码
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- JS放大镜特效(兼容版)
- C++实验7-特殊三位数
- Python Flask Web 第十课 —— flask-wtf
- 【leetcode】206. Reverse Linked List
- sed的模式空间和保持空间
- java过滤非汉字的utf8的字符
- python-day0002-搭建基于python的selenium web测试环境
- c++第六次实验--项目一输出星号图
- js正则表达式语法
- 1152 - 4 Values whose Sum is 0
- [c语言编程]排序法汇总-入门级别(1)
- Mysql逻辑模块组成
- TimesTen 数据库复制学习:6. 利用STORE关键字设定复制网络传输的属性
- [DP] [1D1D优化] [树状数组] [最短路] 遭遇战 (clean)