Python3的unicode編碼轉(zhuǎn)換成中文的問題及解決方案
這篇文章主要介紹了Python3的unicode編碼轉(zhuǎn)換成中文的問題及解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
從別的地方搬過來的,擔(dān)心以后不容易搜索到,就收集過來。
我當(dāng)時(shí)面臨的問題是要從C++發(fā)json代碼出來,用python寫了個(gè)server,然后返回給C++程序,結(jié)果收到的是:
httpSvrDataCbUser: {"tranNO": "0808ad498670dc996", "data": "\u65b0A1EY16", "ver": "1.0", "sendTime": "2019-12-10 00:23:51", "tranType": "2001"}
我發(fā)過去的是utf-8編碼,中間有中文,"新A1EY16",結(jié)果發(fā)回來的卻是:"\u65b0A1EY16"
9102年,大部分人已經(jīng)受盡了python2里面unicode的折磨,轉(zhuǎn)向了python3。
python3似乎對(duì)一切的unicode都那么的友好,當(dāng)一個(gè)字符串里存在unicode的時(shí)候,只要字符串是硬編碼的,就可以轉(zhuǎn)換成中文打印在控制臺(tái)上,如:
s = ‘\u7b14\u8bb0' print(s)
你得到的就是中文漢字。
但是,假如你。。的這段含有‘\u'的unicode編碼不是硬編碼進(jìn)腳本的,而是通過requests在網(wǎng)上爬的。。。那么你會(huì)發(fā)現(xiàn),你打印出來的,還是長(zhǎng)這樣的unicode編碼,換句話說,解釋器這個(gè)時(shí)候根本就沒認(rèn)出這東西原來是unicode編碼,當(dāng)成普通的字符序列了。
百度找到了最好的解決方法:在這個(gè)unicode串后面加上:
s = s.decode().encode(‘unicode_escape') print(s)
它就打印出漢字了
python3中沒有這種問題,所以最簡(jiǎn)單的方法是引入__future__模塊,把新版本的特性導(dǎo)入到當(dāng)前版本
from __future__ import unicode_literals print json.dumps(m,ensure_ascii=False) =>{"a": "你好"}
在寫入文件的時(shí)候出現(xiàn)了Python2.7的UnicodeEncodeError: ‘a(chǎn)scii' codec can't encode異常錯(cuò)誤
大神的解決方法:
不使用open打開文件,而使用codecs:
from __future__ import unicode_literals import codecs fp = codecs.open('output.txt', 'a+', 'utf-8') fp.write(json.dumps(m,ensure_ascii=False)) fp.close()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js字符串與Unicode編碼互相轉(zhuǎn)換
- python實(shí)現(xiàn)unicode轉(zhuǎn)中文及轉(zhuǎn)換默認(rèn)編碼的方法
- PHP實(shí)現(xiàn)Unicode編碼相互轉(zhuǎn)換的方法示例
- JS實(shí)現(xiàn)的Unicode編碼轉(zhuǎn)換操作示例
- .Net(c#)漢字和Unicode編碼互相轉(zhuǎn)換實(shí)例
- C#將Unicode編碼轉(zhuǎn)換為漢字字符串的簡(jiǎn)單方法
- JavaScript中字符串與Unicode編碼互相轉(zhuǎn)換的實(shí)現(xiàn)方法
- PHP如何實(shí)現(xiàn)Unicode和Utf-8編碼相互轉(zhuǎn)換
- js unicode 編碼解析關(guān)于數(shù)據(jù)轉(zhuǎn)換為中文的兩種方法
- C++11 Unicode編碼轉(zhuǎn)換
相關(guān)文章
Opencv實(shí)現(xiàn)傾斜圖片轉(zhuǎn)正示例
本文主要介紹了Opencv實(shí)現(xiàn)傾斜圖片轉(zhuǎn)正示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python Logging 日志記錄入門學(xué)習(xí)
這篇文章主要介紹了Python Logging 日志記錄入門學(xué)習(xí),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn)
這篇文章主要介紹了python 利用 PIL 將數(shù)組值轉(zhuǎn)成圖片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04利用django model save方法對(duì)未更改的字段依然進(jìn)行了保存
這篇文章主要介紹了利用django model save方法對(duì)未更改的字段依然進(jìn)行了保存,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03