python2 去除 字符串中emoji 符号,去除所有4字节utf8字符
2017-10-23 18:09
267 查看
对咱们天朝程序员来说,最常用的编码方式就是UTF-8了。大家在创建数据库的时候,总是条件反射选择UTF-8编码。
最近我遇到一个emoji 符号不能写入数据库得问题。通过查询资料得知,emoji 符号占据4个字符长度,而MySQL的utf-8编码只能写入最多3个字节的字符。想要写入emoji 符号,需要将数据库的编码方式改为 utf8mb4 。
然而,我这张表是一张比较老的表,其中存了很多的数据。修改他的结构怕会引起其他问题。所以只能想别的办法。
在我这里这个数据去除emoji 符号也能符合系统的要求,于是我开始想办法去除emoji 符号。开始我想取得找到emoji的编码范围,把这个范围内的字符都干掉。后来我发现emoji的分布范围比较分散,我没有找到能去除所有emoji符号的范例。
我又想到一个办法,把所有四字节utf8字符干掉不就行了嘛。以下是代码
最近我遇到一个emoji 符号不能写入数据库得问题。通过查询资料得知,emoji 符号占据4个字符长度,而MySQL的utf-8编码只能写入最多3个字节的字符。想要写入emoji 符号,需要将数据库的编码方式改为 utf8mb4 。
然而,我这张表是一张比较老的表,其中存了很多的数据。修改他的结构怕会引起其他问题。所以只能想别的办法。
在我这里这个数据去除emoji 符号也能符合系统的要求,于是我开始想办法去除emoji 符号。开始我想取得找到emoji的编码范围,把这个范围内的字符都干掉。后来我发现emoji的分布范围比较分散,我没有找到能去除所有emoji符号的范例。
我又想到一个办法,把所有四字节utf8字符干掉不就行了嘛。以下是代码
try: text = unicode(text,"utf-8") except TypeError as e: pass try: highpoints = re.compile(u'[\U00010000-\U0010ffff]') except re.error: highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]') return highpoints.sub(u'',text)
相关文章推荐
- python去除字符串中空格和特殊符号的方法
- js去除字符串中所有 和&等特殊符号
- 去除字符串中所有的符号(逗号除外)
- js去除字符串中所有html标签及 符号
- Python 将字节类型转换为"十六进制"字符串
- python编码处理:unicode字节串转成中文 各种字符串举例说明
- Python —— 批量替换指定目录下的所有文件中指定字符串
- IOS 字符串中去除特殊符号 stringByTrimmingCharactersInSet 应该用于账号登录等
- python提取字符串中的中文、去除字符串中的空格换行符回车符
- ios 字符串去除两端的空白 字符串去除所有空白
- 通过stringByTrimmingCharactersInSet去除字符串两端的特殊符号
- python-字符串格式化符号含义
- python脚本工具-2 去除扩展名后提取目录下所有文件名并保存
- Python入门:字符串与字节互转
- C—统计字符串中出现频率最高的符号(所有ASCII码)
- python如何去除字符串中不想要的字符
- 获取字符串中的数字、符号、中文、英文单词、字母、空格、字节、其他字符的个数
- iOS-去除字符串中的空格、特殊符号
- python从字符串内取两个符号之间的内容
- 【python问题解决】去除文本中的所有换行符