python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python处理unicode

Python处理unicode字符的方法详解

作者:微小冷

这篇文章主要介绍了Python处理unicode字符的方法详解,unicodedata中定义了所有Unicode字符的字符属性,主要包含两个功能,其一是根据名字查找字符;其二是给定字符查找其对应的信息,需要的朋友可以参考下

编码与查找

unicodedata 中定义了所有 Unicode 字符的字符属性,主要包含两个功能,其一是根据名字查找字符;其二是给定字符查找其对应的信息。

前者有一个函数

后者由四个函数,形参均为 chr[, default] ,其中 char 未待查找字符, default 为找到的字符未定义输出值时的默认输出

函数返回值
namechr的字符串名称
decimal转为数值
digit转为整数
numeric转为浮点数

上面这些函数,如果没找到,则报 ValueError 错误,示例如下

>>> unicodedata.name('1')
'DIGIT ONE'
>>> unicodedata.decimal('1')
1
>>> unicodedata.digit('1')
1
>>> unicodedata.numeric('1')
1.0

分类

unicode 字符总共分为下面这些类别,通过调用 category(chr) 可以查看字符 chr 所属的unicode分类。

unicode 收集了几乎人类历史上出现的所有符号,所以字符数目相当多。其中,汉字属于 Lo 。

标志含义解释字符数举例
LlLetter, Lowercase小写字母2233
LuLetter, Uppercase大写字母1831
LmLetter, Modifier修饰字母397
LtLetter, Titlecase标题字母31
LCLetter, Cased0
LoLetter, Other其他字母17273
McMark, Spacing Combining452
MeMark, Enclosing封闭标记13
MnMark, Nonspacing非空格标记1985
NdNumber, Decimal Digit十进制数字6800
NlNumber, Letter数字字母236
NoNumber, Other其他数字915¼
PcPunctuation, Connector连接符10
PdPunctuation, Dash破折号26
PsPunctuation, Open左括号79
PePunctuation, Close右括号77
PfPunctuation, Final quote右引号10
PiPunctuation, Initial quote左引号12
PoPunctuation, Other其他标点628
ScSymbol, Currency货币符号63$
SkSymbol, Modifier修饰符125
SmSymbol, Math数学符号948
SoSymbol, Other其他符号6634֎
ZlSeparator, Line换行符1U+2028
ZpSeparator, Paragraph分段符1U+2029
ZsSeparator, Space空格17
CcOther, Control控制字符65
CfOther, Format格式字符170
CnOther, Not Assigned0
CoOther, Private Use6
CsOther, Surrogate6

下面实践一下

>>> unicodedata.category('A')
'Lu'
>>> unicodedata.category('a')
'Ll'
>>> unicodedata.category('啊')
'Lo'
>>> unicodedata.category('∭')
'Sm'

文字方向

由于不同文字的书写顺序是不同的,所以字符的应用场景会受到文字的影响。有一些字符具有较强的方向感,比如英语字母从左向右,而阿拉伯字母则是从右向左的。

bidirectional 可以查询字符文字的方向,

>>> unicodedata.bidirectional('>')
'ON'
>>> unicodedata.bidirectional('\u06A0')
'AL'
>>> unicodedata.bidirectional('啊')
'L'
类型标志说明
L从左向右
R从右向左
AL阿拉伯式从右向左
EN欧洲数字
ES欧洲数字分隔符
ET欧洲数字终结符
AN阿拉伯数字
CS数字分隔符
MSN非空标记
BN边界符号
中立B段落分隔符
中立S制表符
中立WS空格
中立ON其他中立字符
显式LRELeft-to-Right Embedding
显式LROLeft-to-Right Override
显式RLERight-to-Left Embedding
显式RLORight-to-Left Override
显式PDFPop Directional Format
显式LRILeft-to-Right Isolate
显式RLIRight-to-Left Isolate
显式FSIFirst Strong Isolate
显式PDIPop Directional Isolate

到此这篇关于Python处理unicode字符的方法详解的文章就介绍到这了,更多相关Python处理unicode内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文