为解决中英文标点转换的问题,我查阅了一些资料,发现大家主流的方法是通过加减中英文标点相差的编码值,来实现中英文标点或者中英文字符的转换(或者是半角转全角)。
但在实际操作过程中,引号的转换会出现一些问题,所以转变思路,将问题变成字符串替换,利用python 字符串类型本身所带的translate函数来解决。
主流方法参考:https://blog.csdn.net/dengzhilong_cpp/article/details/25282349
translate函数详解:http://www.runoob.com/python/att-string-translate.html
利用translate函数将英文标点转换为中文标点
def E_trans_to_C(string):
E_pun = u',.!?[]()<>"\''
C_pun = u',。!?【】()《》“‘'
table= {ord(f):ord(t) for f,t in zip(E_pun,C_pun)}
return string.translate(table)
测试函数
s1 = '这里包含英文字符.'
s2 = E_trans_to_C(s1)
print(s2)