python实现字符串中的半全角转换

Posted 米仓山下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现字符串中的半全角转换相关的知识,希望对你有一定的参考价值。

  • 全角和半角的空格的Unicode值相差12256
  • 除空格外的全角和半角的Unicode值相差65248
# -*- coding: utf-8 -*-
def strQ2B(ustring):
    """全角转半角"""
    rstring = ""
    for uchar in ustring:
        inside_code=ord(uchar)
        if inside_code == 12288:                              #全角空格直接转换,全角和半角的空格的Unicode值相差12256
            inside_code = 32 
        elif (inside_code >= 65281 and inside_code <= 65374): #全角字符(除空格)根据关系转化,除空格外的全角和半角的Unicode值相差65248
            inside_code -= 65248

        rstring += unichr(inside_code)
    return rstring
    
def strB2Q(ustring):
    """半角转全角"""
    rstring = ""
    for uchar in ustring:
        inside_code=ord(uchar)
        if inside_code == 32:                                 #半角空格直接转化,全角和半角的空格的Unicode值相差12256
            inside_code = 12288
        elif inside_code >= 32 and inside_code <= 126:        #半角字符(除空格)根据关系转化,除空格外的全角和半角的Unicode值相差65248
            inside_code += 65248
        rstring += unichr(inside_code)
    return rstring

b = strQ2B("mn 123abc全角转半角".decode(utf-8))                           
print b

c = strB2Q("mn123abc半角转全角".decode(utf-8))                           
print c

 

以上是关于python实现字符串中的半全角转换的主要内容,如果未能解决你的问题,请参考以下文章

python实现全角半角的相互转换

网页和自然语言处理中的字符问题(半角和全角)

WORD2010如何把全角字母和数字批量转换成半角

如何将字符串中的全角空格转换成半角空格?

python去重(汉字一样,里面的编码不一样)?

怎么把文字的全角符号切换成半角