- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
谈谈Python编码问题和Unicode taochunhua@tencent outline Unicode基础知识 Python的str和unicode Json编码工具 实例 Unicode Ascii时代 7位,最高位是校验位 MBCS时代(多字节字符集) 中文CP963,GBK,GB2312,BIG5 Unicode Unicode16,Unicode32 题外话:存在与表示 Big Endian Little Endian SPARK, x86, ARM Host Byte Order Network Byte Order htonl, ntohl, htons, ntohs 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) UTF32(Big/Little Endian) UTF8 变长方案 思考?为什么是变长的?如何实现? Python str unicode str对象 存储ascii字符串,以及二进制数据 unicode对象 存储unicode字符串,采用的是utf16或utf32 str用来存储各种utf数据,包括gbk等 可以认为:unicode对象是理想的unicode,str是丑陋的现实(各种utf) str与unicode的转化 使用时机 拇指定律 IO时用str e.g. network, file read write 内部处理时用unicode json encode, string process 例子 从外部读入时它是str 转为unicode进行必要处理 再转为str输出 demo 体验demo.py import json 我懂了上面说的,为什么json还是搞不定? 嗯,因为json帮你encode,decode了一些东西 需要仔细阅读json模块的文档 json.dumps(obj, ensure_ascii,encoding...) obj python数据结构: dic, list ... ensure_ascii = True(default) dumps返回一个str ensure_ascii = False dumps返回一个unicode!我们可以进一步对它encode encoding 在obj进行转化之前,所有obj中的str会转为unicode,即str.decode(encoding) 默认情况: str - unicode - json(unicode) - str 一个默认处理 json.dumps(d, encoding=gbk) 它返回一个str str - unicode - json(unicode) - str str-unicode的decode在 encoding参数控制 json(unicode) - str 这里的encoding是默认控制的! 这个默认控制不是encode,而是直接把unicode转义为ascii编码,这个ascii码的内容是unicode! 这里应该是个utf8,这个过程是个硬编码:见lib中encode.py 证据 老白干酒 utf8 : 0x8001 0x767D 0x5E72 0x9152 gbk : 0xC0CF 0xB0D7 0xB8C9 0xBEC6 JSON本身的规范和实现 有了以上知识,我们还有可能搞不定特定需求:比如,请给我弄个GKB的字符串! JSON规范定义string必须是unicode字符串,但是实现形式默认是utf8 有些json解析函数仅实现了utf8,不支持其他格式! 实例 后台程序写入数据到redis 实例 redis中数据 实例 php接口 * * *
您可能关注的文档
- 四大名楼总图.ppt
- 四乙班级公约.ppt
- 四肢脊柱神经系统检查.ppt
- 松江区税务局.ppt
- 松原市宁江七小 武玥.ppt
- 有哪些信誉好的足球投注网站引擎的检索技巧.ppt
- 苏教版 四年级语文上册 习作2.ppt
- 苏教版(国标本)小学语文二年级上册期末复习.ppt
- 苏教版第四册第三单元.ppt
- 苏教版国标本小学数学四年级(下).ppt
- 2025年一级建造师考试《水利水电工程管理与实务》冲刺必刷卷.docx
- 2025年一级建造师考试《水利水电工程管理与实务》逆袭破题卷1.docx
- 2025年一级建造师考试《市政工程管理与实务》冲刺必刷卷 .docx
- 2025年一级造价工程师考试《建设工程计价》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价管理》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(安装专业)》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(土建专业)》预习卷.docx
- 2025年中级会计考试《会计实务》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》全真模拟卷.docx
最近下载
- 2024年出版专业资格考试《基础知识》(中级)真题及答案.pdf VIP
- 高壓电机修理质量过程控制管理办法.doc VIP
- 2025年河北石家庄学院公开选聘事业单位工作人员25名备考题库及答案解析.docx VIP
- 鼻炎中医PPT课件.pptx VIP
- 新能源基础知识PPT精品课件-.pptx VIP
- 2025年河北石家庄辛集市事业单位公开招聘工作人员191名备考题库及答案解析.docx VIP
- 2025年南京江北新区公开招聘社区工作者60人笔试备考题库及答案解析.docx VIP
- 一年级上册生字练字帖.docx VIP
- 2025年天翼云解决方案架构师认证考试题库-上(单选题汇总).docx VIP
- 克莱门特w3000用户手册(中文版).pdf VIP
文档评论(0)