过滤3个字节以上的utf-8字符
/*** 过滤掉超过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");}
转载于:https://www.cnblogs.com/coprince/p/7490109.html
过滤3个字节以上的utf-8字符相关推荐
- java io流过滤流_JAVA io流 文件流 字节流 字符流 过滤流 缓冲流
一.概念 1.1.按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 1.2.按数据传输单位分类: 字节流:以字节(8位二进制)为单位进行处理.主要用于读写诸如图 ...
- python不属于字符串的是_【python cookbook】python过滤字符串中不属于指定集合的字符...
1 #!/usr/bin/python 2 #-*- coding: utf-8 -*- 3 4 #过滤字符串中不属于指定集合的字符 5 6 importstring7 8 #生成所有字符的可复用的字 ...
- 不属于python标准库的是_《Python Cookbook(第2版)中文版》——1.10 过滤字符串中不属于指定集合的字符-阿里云开发者社区...
本节书摘来自异步社区<Python Cookbook(第2版)中文版>一书中的第1章,第1.10节,作者[美]Alex Martelli , Anna Martelli Ravenscro ...
- 位(bit)、字节(byte)、字符之间的关系(数字占即为字节)
1.位: 数据存储的最小单位.每个二进制数字0或者1就是1个位: 2.字节: 8个位构成一个字节:即:1 byte (字节)= 8 bit(位): 1 KB = 1024 B(字节): 1 MB = ...
- VS打开工程时提示:文件加载 使用Unicode (UTF-8)编码加载文件***时,有些字节已用Unicode替换字符替换。
折腾了大半天,原本好好的工程,在重启电脑后,再用VS打开时竟然提示: 文件加载,使用Unicode(UTF-8)编码加载文件 xxx 时,有些字节已用Unicode替换字符替换.保存该文件将不会保留原 ...
- python过滤字符串中不属于指定集合的字符的代码
将做工程过程比较重要的一些内容备份一下,如下资料是关于python过滤字符串中不属于指定集合的字符的内容. import string 生成所有字符的可复用的字符串,它还可以作为 一个翻译表,指明&q ...
- c语言英文字母占用字节数,字符型变量占用字节数 c语言里字符型数据占多少字节...
一个字符型变量所占内存的字节数是一个字符型变量所占内存的字节数是 1个字节. 字符与字符型变量有什么区别,都占几个字节 (一)"字节"的定义 字节(Byte)是一种计量单位,表示数 ...
- 火车头使用PHP插件过滤emoji四字节字符
方法很好用,直接出代码吧. <?phpfunction filter_emoji_string($str){ $str = trim($str); $str = preg_replace_cal ...
- java 字符字节数组_Java字符串与字符、字节数组知识点总结
(1)用字符数组创建字符串对象,String类中有两个有字符数组创建字符串对象的构造的方法: String(char [ ])该构造方法用指定的字符数组创建构造一个字符串对象: String (cha ...
最新文章
- C++标准库简介(转)
- ACL 2019 | 理解 BERT 每一层都学到了什么
- Chrome和Firefox浏览器长截图
- 1.10 长短期记忆(LSTM)
- 美团优选、多多买菜等五家社区团购被罚650万元;打车手机越贵,接单车型越贵;微软推出低代码语言 Power Fx | 极客头条...
- 解决VMware 7在Windows 7上无法上网的问题
- Kubernetes系列——Kubernetes 组件、对象(二)
- Hive 安装配置及下载地址
- 增强学习之一——Q-Learning公式
- 利用HttpWebRequest自动抓取51la统计数据
- 使用linux时电脑突然蓝屏,win7系统电脑突然蓝屏的原因的原因和解决方法介绍
- ideapad720s在接通电源情况下,关机后自动重启的解决办法
- InAction-根据LBS数据手机用户移动轨迹
- 【二维前缀和】304. 二维区域和检索 - 矩阵不可变
- 苹果 iTunes connect 下架APP
- CS224W-07:图神经网络二
- 『开发技术』Python中文分词工具SnowNLP教程
- 虎奔教育二级c语言答案,【虎奔教育计算机二级C语言软件】虎奔教育计算机二级C语言下载 v6.3.4.0 最新版-趣致软件园...
- java bitmap 点阵_Android Bitmap(点阵图像、绘制图像)
- 【STM8S】STM8S之定时器1的精确延时
热门文章
- jQuery 事件绑定方法(bind hover toggle live.... )、删除事件方法(unbind, die)及 事件对象
- Python 技术篇-系统、环境变量配置后python不生效问题解决方法,python服务命令行重启方法
- freeRtos学习笔记 (9) 移植和CPU利用率统计
- 用MPLAB IDE编程时,软件总是弹出一个窗口提示: “the extended cpu mode configuration bit is enabled,but the program that
- 第十周项目实践1 二叉树算法验证
- Python进阶11-标准库介绍02
- matlab中矩阵的左除右除
- 图像的多分辨率金字塔详解
- 算法题:水洼有多少(C++)
- idea在Terminal中使用maven指令