Python处理unicode字符的方法详解

 更新时间:2023年08月11日 09:45:10   作者:微小冷  
这篇文章主要介绍了Python处理unicode字符的方法详解,unicodedata中定义了所有Unicode字符的字符属性,主要包含两个功能,其一是根据名字查找字符;其二是给定字符查找其对应的信息,需要的朋友可以参考下

编码与查找

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

前者有一个函数

  • lookup(name) 通过 name 查找字符并返回。

后者由四个函数,形参均为 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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python爬取天气数据的实例详解

    python爬取天气数据的实例详解

    在本篇文章里小编给大家整理的是一篇关于python爬取天气数据的实例详解内容,有兴趣的朋友们学习下。
    2020-11-11
  • Python socket连接中的粘包、精确传输问题实例分析

    Python socket连接中的粘包、精确传输问题实例分析

    这篇文章主要介绍了Python socket连接中的粘包、精确传输问题,结合实例形式分析了Python socket连接中的粘包、精确传输相关问题原因、解决方案与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • Pandas技巧分享之创建测试数据

    Pandas技巧分享之创建测试数据

    学习pandas的过程中,为了尝试pandas提供的各类功能强大的函数,常常需要花费很多时间去创造测试数据,本篇介绍了一些快速创建测试数据的方法,需要的可以参考一下
    2023-07-07
  • python读取配置文件方式(ini、yaml、xml)

    python读取配置文件方式(ini、yaml、xml)

    这篇文章主要介绍了python读取配置文件方式(ini、yaml、xml),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Flask-Mail用法实例分析

    Flask-Mail用法实例分析

    这篇文章主要介绍了Flask-Mail用法,结合实例形式分析了Flask-Mail的安装、配置参数及简单使用技巧,需要的朋友可以参考下
    2018-07-07
  • Pytest实现setup和teardown的详细使用详解

    Pytest实现setup和teardown的详细使用详解

    这篇文章主要介绍了Pytest实现setup和teardown的详细使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 解决安装和导入tensorflow、keras出错的问题

    解决安装和导入tensorflow、keras出错的问题

    这篇文章主要介绍了解决安装和导入tensorflow、keras出错的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Django中间件拦截未登录url实例详解

    Django中间件拦截未登录url实例详解

    在本篇文章里小编给各位整理了关于Django中间件拦截未登录url的实例内容以及相关知识点,有需要的朋友们可以学习下。
    2019-09-09
  • Python字典中的值求和两种方法

    Python字典中的值求和两种方法

    在Python中字典是一种无序的数据结构,它由一系列键和对应的值组成,有时候我们需要对字典中的键对应的值进行求和操作,这篇文章主要给大家介绍了关于Python字典中值求和两种方法的相关资料,需要的朋友可以参考下
    2023-11-11
  • Python 文件处理之open()函数

    Python 文件处理之open()函数

    这篇文章主要介绍了Python 文件处理之open()函数,在 Python 中使用文件的关键函数是 open() 函数,关于其打开文件的不同方式需要的小伙伴可以参考下面详细介绍
    2022-03-03

最新评论