如何区分单词是半宽还是全宽?

时间:2012-06-09 07:27:22

标签: python

最近我一直在处理混合语言的文本,包括中文,英文,甚至一些表情符号。

我一直在寻找这个问题很多,但我唯一能找到的是“用半角字符替换全角字符”,而不是告诉你如何确定角色是否是一半 - 或全角词。

所以,我的问题是:

是否可以判断某个字是半宽还是全宽?

3 个答案:

答案 0 :(得分:2)

在unicode 6.1中,有一个块Halfwidth and Fullwidth formspdf here

在此块中,\uFF01-\uFF60\uFFE0-\uFFE6为全宽,而\uFF61-\uFFDC\uFFE8-\uFFEE为半宽。

答案 1 :(得分:1)

我认为这是一个难以回答的问题,除非你有一个明确的标准,即什么是半角字符和什么是全角字符。如果您可以决定,那么您可以在Unicode(或任何编码方案)中针对特定范围测试单词中的字符。

Unicode块Halfwidth and Fullwidth Forms仅显示哪些字符具有替代形式。对于此块中没有的任何功能,您必须决定您考虑的半宽和全宽。

我认为大多数西方字符是半宽的,大多数东方字符是全角的,但两者都有例外。由于this Unicode report突出显示,也存在歧义。

This proposal包括code,似乎将字符划分为全半宽和不明确宽度。您可以将这些代码点用作起始位置。

答案 2 :(得分:0)

如果单词的字符是全角,则该单词为全角。您需要查找unicode规范并查看哪个字符范围是全角,然后检查每个字符。