




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、談談Python編碼問題和Unicodetaochunhuatencentoutline Unicode基礎知識 Python的str和unicode Json編碼工具 實例Unicode Ascii時代 7位,最高位是校驗位 MBCS時代(多字節(jié)字符集) 中文CP963,GBK,GB2312,BIG5 Unicode Unicode16,Unicode32題外話:存在與表示 Big Endian & Little Endian SPARK, x86, ARM Host Byte Order & Network Byte Order htonl, ntohl, htons, n
2、tohs Object Persistence & Serialize MFC, java serialiable interface and persistence api, protobuf Unicode & UTF, UCS Several mechanisms have been specified for implementing Unicode.unicode & utf unicode unicode16, unicode32 Unicode Transformation Format (UTF) UTF16(Big/Little Endian) UTF
3、32(Big/Little Endian) UTF8 變長方案 思考?為什么是變長的?如何實現(xiàn)?Python str & unicode str對象 存儲ascii字符串,以及二進制數(shù)據(jù) unicode對象 存儲unicode字符串,采用的是utf16或utf32 str用來存儲各種utf數(shù)據(jù),包括gbk等 可以認為:unicode對象是理想的unicode,str是丑陋的現(xiàn)實(各種utf)str與unicode的轉(zhuǎn)化使用時機 拇指定律 IO時用str e.g. network, file read write 內(nèi)部處理時用unicode json encode, string pro
4、cess 例子1.從外部讀入時它是str2.轉(zhuǎn)為unicode進行必要處理3.再轉(zhuǎn)為str輸出demo 體驗demo.pyimport json 我懂了上面說的,為什么json還是搞不定? 嗯,因為json幫你encode,decode了一些東西 需要仔細閱讀json模塊的文檔 json.dumps(obj, ensure_ascii,encoding.) obj python數(shù)據(jù)結(jié)構(gòu): dic, list . ensure_ascii = True(default) dumps返回一個str ensure_ascii = False dumps返回一個unicode!我們可以進一步對它enc
5、ode encoding 在obj進行轉(zhuǎn)化之前,所有obj中的str會轉(zhuǎn)為unicode,即str.decode(encoding) 默認情況: str - unicode - json(unicode) - str一個默認處理 json.dumps(d, encoding=gbk) 它返回一個str str - unicode - json(unicode) - str str-unicode的decode在 encoding參數(shù)控制 json(unicode) - str 這里的encoding是默認控制的! 這個默認控制不是encode,而是直接把unicode轉(zhuǎn)義為ascii編碼,這個ascii碼的內(nèi)容是unicode! 這里應該是個utf8,這個過程是個硬編碼:見lib中encode.py證據(jù) 老白干酒 utf8 : 0 x8001 0 x767D 0 x5E72 0 x9152 gbk : 0 xC0CF 0 xB0D7 0 xB8C9 0 xBEC6JSON本身的規(guī)范和實現(xiàn) 有了以上知識,我們還有可能搞不定特定需求:比如,請給我弄個GKB的字符串! JSON規(guī)范定義string必須
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務派工合同范本
- 個人課題申報書怎么
- 咨詢中介服務合同范本
- 醫(yī)院大型設備合同范本
- 五金鉆頭采購合同范本
- 農(nóng)村買地蓋房合同范本
- 刷單協(xié)議合同范本
- 賣房有效合同范本
- 合肥房屋拆除合同范本
- 周圍房子出租合同范例
- 2025年黑龍江農(nóng)墾職業(yè)學院單招職業(yè)傾向性測試題庫完整
- 2025年黑龍江旅游職業(yè)技術(shù)學院單招職業(yè)傾向性測試題庫附答案
- 2025年湖南理工職業(yè)技術(shù)學院單招職業(yè)技能測試題庫必考題
- 歷史-貴州省貴陽市2025年高三年級適應性考試(一)(貴陽一模)試題和答案
- 2024年10月高等教育自學考試07454傳感器技術(shù)應用試題及答案
- 2024年西安電力高等專科學校高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- JGJT178-2009 補償收縮混凝土應用技術(shù)規(guī)程
- 2022年山東鋁業(yè)職業(yè)學院單招綜合素質(zhì)考試筆試試題及答案解析
- 氧氣管道吹掃方案(共7頁)
- JJG-943-2011-總懸浮顆粒物采樣器
- 2018年湖北省襄陽市中考物理試卷
評論
0/150
提交評論