Python中如何进行中文转换?
求助,类似这种字符串,如何转换为中文
a = u’\u7f8e\u56feT9\u9890\u548c\u56ed\u9650\u91cf\u7248\uff086GB RAM/\u5168\u7f51\u901a\uff09’
Python中如何进行中文转换?
print(a)
在Python里处理中文转换,主要看你具体想转什么。是编码、简繁体,还是拼音?这里给你几个最常用的方法:
1. 编码转换(比如文件乱码时)
# 假设你从gbk编码的文件读到了乱码字节
gbk_bytes = b'\xd6\xd0\xce\xc4' # "中文"的gbk编码
utf8_str = gbk_bytes.decode('gbk') # 转为Unicode字符串
print(utf8_str) # 输出:中文
# 再转成utf-8字节
new_bytes = utf8_str.encode('utf-8')
2. 简繁体转换
用opencc-python库:
import opencc
converter = opencc.OpenCC('s2t') # 简体转繁体
result = converter.convert('中文转换')
print(result) # 输出:中文轉換
3. 中文转拼音
用pypinyin库:
from pypinyin import pinyin, Style
# 获取带声调的拼音
result = pinyin('中文', style=Style.TONE)
print(result) # 输出:[['zhōng'], ['wén']]
# 不带声调
result = pinyin('中文', style=Style.NORMAL)
print(result) # 输出:[['zhong'], ['wen']]
4. 全角/半角转换
def strQ2B(ustring):
"""全角转半角"""
ss = []
for s in ustring:
rstring = ""
for uchar in s:
inside_code = ord(uchar)
if inside_code == 12288: # 全角空格
inside_code = 32
elif 65281 <= inside_code <= 65374: # 全角字符
inside_code -= 65248
rstring += chr(inside_code)
ss.append(rstring)
return ''.join(ss)
print(strQ2B('中文,。!')) # 输出:中文,。!
总结:先明确你要转什么,再选对应的库。
或者
windows: print(a.encode(‘gbk’))
linux: print(a.encode(‘utf-8’))
这个字符串可以直接使用,而且是跨语言的,你的需求是什么?想在 IDE 看到汉字?
多谢,我的需求是将这个字符串写入数据库的话,读出来还是不是中文了
哪位大佬帮看看这个问题 https://www.v2ex.com/t/472366
理论上这个字串在其他语言也能识别的,读出来处理没问题
怕不保险可以这样转一次再存:
In [6]: u’\u2665’.encode(“utf8”).decode(‘utf8’)
Out[6]: '♥’
In [9]: ‘\u7f8e’.encode(“gbk”).decode(‘gbk’)
Out[9]: ‘美’
>>> print(a.encode(‘utf8’).decode(‘utf8’))
美图 T9 颐和园限量版( 6GB RAM/全网通)
存入 DB 的时候 encode(‘utf8’)变成 bytes 类型,从 DB 读取的时候 decode(‘utf8’)变成 str
赞

