过滤3个字节以上的utf-8字符
2017-09-07 15:44
495 查看
/** * 过滤掉超过3个字节的UTF8字符 * @param text * @return * @throws UnsupportedEncodingException */ public static 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 >> 5) ^ 0x6) == 0) { buffer.put(bytes, i, 2); i += 2; } else if (((b >> 4) ^ 0xE) == 0) { buffer.put(bytes, i, 3); i += 3; } else if (((b >> 3) ^ 0x1E) == 0) { i += 4; } else if (((b >> 2) ^ 0x3E) == 0) { i += 5; } else if (((b >> 1) ^ 0x7E) == 0) { i += 6; } else { buffer.put(bytes[i++]); } } buffer.flip(); return new String(buffer.array(), "utf-8"); }
相关文章推荐
- 过滤3个字节以上的utf-8字符
- 过滤3个字节以上的utf-8字符
- 过滤4字节及以上的字符c++实现
- Ascii,Unicode和utf-8的发展演变,java下字符和字节关系
- python中文utf8编码后是占3个字符,unicode汉字为2字节
- 电子邮件附件名称包含非 ASCII 字符,并且长度超过 41 utf-8 编码字节的是之前的.NET Framework 4 编译的应用程序中的传输编码两次
- 字节、字符、ASCII码、UTF-8编码
- 将字符串按照utf-8或gb2312编码写入文件,10个字节一行,当字符超过10个字节则放到下一行。
- UTF-8编码Emoji表情或者某些特殊字符是4个字节导致数据插不进去
- python 正则过滤四字节字符
- 过滤utf8 字符中超过三个字节的字符,或者非utf8字符
- Unicode与UTF-8的区别(字符、字节和编码的学习探索)
- 位,字,字节,字符,编码,ASCII,UTF,GB精析
- utf-8 特殊字符过滤
- Java过滤掉非UTF-8字符方法
- 过滤utf8 字符中超过三个字节的字符,或者非utf8字符
- DB2数据库UTF-8字符集的汉字占3个字节
- 宽字符、多字节、unicode、utf-8、gbk编码转化
- 字节,字符,Unicode,utf-32,utf-16,utf-8,ASCII的含义
- vs中保存的多字节字符集转成utf-8,as3接收utf-8字符串