全角字符转半角字符
中文中的标点符号一般都是用全角字符表示的,也就是说用了两个英文字符的位置,这和普通汉字是一致的。英文标点则是用的一个字符的位置。有时,需要把一些全角字符(标点,等)转换为英文的半角字符,怎么转呢,如下:
规则:
半角字符的 unicode 编码 始末为:33~126
对应全角的unicode 编码始末为:65281~65374
空格 为:半角32, 全角 12288
对应规则就是:除了空格,相差62548
在python 环境下,转换的时候,只需根据以上信息获得一个匹配表,replace一下即可。当然也可直接对出现在范围内的字符进行转换。
例如:
full2half_table = [(unichr(i), chr(i - 65248)) for i in range(65281, 65374)]
full2half_table.append((unichr(12288), chr(32)))
def to_half_width(s):
for full, half in full2half_table:
s = s.replace(full, half)
return s
其中 unchr 是将字符对应的数字装换为unicode 字符, chr 类似, 同样,ord 是一个逆过程。