python 利用utf-8编码判断中文英文字符
来源:互联网 发布:淘宝网店宝贝图片尺寸 编辑:程序博客网 时间:2024/05/16 16:23
下面这个小工具包含了判断unicode是否是汉字、数字、英文或者其他字符,全角符号转半角符号,unicode字符串归一化等工作。
#!/usr/bin/env python# -*- coding:GBK -*- """汉字处理的工具:判断unicode是否是汉字,数字,英文,或者其他字符。全角符号转半角符号。"""def is_chinese(uchar): """判断一个unicode是否是汉字""" if uchar >= u'\u4e00' and uchar<=u'\u9fa5': return True else: return Falsedef is_number(uchar): """判断一个unicode是否是数字""" if uchar >= u'\u0030' and uchar<=u'\u0039': return True else: return Falsedef is_alphabet(uchar): """判断一个unicode是否是英文字母""" if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'): return True else: return Falsedef is_other(uchar): """判断是否非汉字,数字和英文字符""" if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)): return True else: return Falsedef B2Q(uchar): """半角转全角""" inside_code=ord(uchar) if inside_code<0x0020 or inside_code>0x7e: #不是半角字符就返回原来的字符 return uchar if inside_code==0x0020: #除了空格其他的全角半角的公式为:半角=全角-0xfee0 inside_code=0x3000 else: inside_code+=0xfee0 return unichr(inside_code)def Q2B(uchar): """全角转半角""" inside_code=ord(uchar) if inside_code==0x3000: inside_code=0x0020 else: inside_code-=0xfee0 if inside_code<0x0020 or inside_code>0x7e: #转完之后不是半角字符返回原来的字符 return uchar return unichr(inside_code)def stringQ2B(ustring): """把字符串全角转半角""" return "".join([Q2B(uchar) for uchar in ustring])def uniform(ustring): """格式化字符串,完成全角转半角,大写转小写的工作""" return stringQ2B(ustring).lower()def string2List(ustring): """将ustring按照中文,字母,数字分开""" retList=[] utmp=[] for uchar in ustring: if is_other(uchar): if len(utmp)==0: continue else: retList.append("".join(utmp)) utmp=[] else: utmp.append(uchar) if len(utmp)!=0: retList.append("".join(utmp)) return retList #test Q2B and B2Q for i in range(0x0020,0x007F): print Q2B(B2Q(unichr(i))),B2Q(unichr(i)) #test uniform ustring=u'中国 人名a高频A' ustring=uniform(ustring) ret=string2List(ustring) print ret
参考这里和这里
阅读全文
0 0
- python利用utf-8编码判断中文英文字符(转)
- python利用utf-8编码判断中文英文字符
- python利用utf-8编码判断中文英文字符
- python 利用utf-8编码判断中文英文字符
- VS2015支持UTF-8 with BOM编码格式处理中文、西班牙文、法文等非英文字符
- Android 中文字符转UTF-8编码
- Android 中文字符转UTF-8编码
- Android 中文字符转UTF-8编码
- Android 中文字符转UTF-8编码
- 中文字符编码之GBK,UTF-16和UTF-8
- 中文字符编码之GBK,UTF-16和UTF-8
- 中文字符编码之GBK,UTF-16和UTF-8
- 中文字符编码之GBK,UTF-16和UTF-8
- Python笔记:字符编码unicode/utf-8
- python 中文编码 #-*-coding:utf-8-*-
- 字符编码 Unicode UTF-8,GB2312,shift-jis编码判断。
- 字符编码 Unicode UTF-8,GB2312,shift-jis编码判断。
- 字符编码 Unicode UTF-8,GB2312,shift-jis编码判断。
- Android DialogFragment在屏幕旋转之后,输入框内的文字消失的原因
- python读取Kafka
- Spring源码-IOC(三)
- echarts 多个series图表的tooltip自定义
- 7-11 畅通工程之局部最小花费问题(最小生成树+并查集)
- python 利用utf-8编码判断中文英文字符
- sql 批量插入(一个数据库的表数据,添加到另一个数据库表) 数据类型nText和varchar在运算符equals不兼容的问题解决方案
- 一些sql语句的练习题及解答
- Linux根目录下重要目录的作用
- django 分页效果实现(djangorestframework内置以及django内置方法)
- 有趣有料的英语
- HTML5 初始之旅
- 在数组中寻找连续子数组和最大值
- [简单日记]服务层通用post请求