美文网首页
字符串编码问题

字符串编码问题

作者: Rainysong | 来源:发表于2019-06-11 14:31 被阅读0次

    1、在线编码转换:https://tool.oschina.net/encode

    2、1)json.dumps() 会默认参数ensure_ascii=True,即遇到中文直接转ascii编码,而非utf-8;而如果不想json串里包含ASCII编码,则应设置ensure_ascii=False。官方说明如下:


    json.dumps-ensure_ascii参数.png

    2)即使忘了设参数ensure_ascii=False,直接json.loads出来,应该也没问题(显示中文,而非unicode编码);或者采用eval的方式,对json字符串操作一次,也能还原中文。

    转json字符串的(中文)编码问题.png

    3)今天遇到的问题(理顺了):我给socket服务端返回的直接是(某些字段含中文字符串的)dict(而非字符串),socket不支持数据结构的传输,于是自己会有一次字典转字符串的操作,这样的转换,将中文转换为了ASCII编码(即没有特别指定ensure_ascii=False),所以U3D端看到的都是中文的ASCII编码,而非中文。

    解决方式:我按照编码转好后,直接传字符串给服务端

    后续:还是没能解决,客户端拿到的中文依然是ASCII码,之后再深入研究一下。

    3、字符串编码笔记:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

    4、检查字符串编码:
    1)在线查验网站
    2)Python chardet包
    遇到报错:TypeError: Expected object of type bytes or bytearray, got: <class 'str'>

    chardet.detect报错.png
    问题:字符串没有转成字节编码
    解决:chardet.detect(b"\u5317\u4eac\u5e02")
    改正后.png
    3)str-bytes转换方法: 字符串转为编码必须制定编码形式
    https://stackoverflow.com/questions/7585435/best-way-to-convert-string-to-bytes-in-python-3 str-bytes.png image.png

    相关文章

      网友评论

          本文标题:字符串编码问题

          本文链接:https://www.haomeiwen.com/subject/ddkqfctx.html