为什么Python 2.6和2.7对中文进行base64编码,得到的结果不一样?
黄舟
黄舟 2017-04-17 16:35:44
[Python讨论组]

注意,“U你好”只是中英文混写而已,不是写错了。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
PHP中文网

因为你的两个终端的字符编码不同,而不是 Python 的问题。

s = "你好"
u = u"你好"

上面的 s 是一个 stru 是一个 unicode 对象。s 的值是根据终端的字符编码转换的结果,在 GBK 的终端下 >>> s 得到 '\xc4\xe3\xba\xc3',在 UTF8 的终端下 >>> s 得到 '\xe4\xbd\xa0\xe5\xa5\xbd',但 >>> u 总是 u'\u4f60\u597d'

迷茫

是因为你终端使用的编码不一致造成的

图1,linux终端,是UTF-8编码,验证方法:

a = "U你好"
a.decode("utf-8")

应该可以正确(不报错)显示转化成unicode字符了

图2,windows CMD终端,中文100%非utf-8编码,具体什么编码不清楚,身边没有win电脑可以验证

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号