首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

苦恼Python2中的编码问题?那是因为没看过这篇文章

Python2编码一直是个让人头疼的问题,能够让一个充满激情的新手,从刚安装完python解释器到放弃。

我就曾经放弃过,后来又拿了起来,真是一波多折。

so,如果可能就尽量使用Python3吧!

下面我就python2通过pymysql处理查询结果为例说明。

要查询的数据表(包含中文):

python2原始代码:

1、SyntaxError: Non-ASCII character

看着好好的代码,莫名其妙的来个语法错误

根据报错提示的链接:

http://python.org/dev/peps/pep-0263/

打开后发现需要在文件头加文件编码说明

或者

2、中文变成了?

添加完文件编码后,继续运行代码,代码文件中有 和 打印出来的内容分别是:

what? 查看的源码,发现有一个参数字符集,那么添加一个字符编码试试:

3、UnicodeEncodeError

添加完编码字符集参数后,运行又报错了!

发现print(rows)已经打印了,而且没有?,前面带u,说明是unicode字符

报错代码是:person = "{}{}".format(row.name, row.age),使用format格式化报错

明明已经在文件开头指定了文件的编码是utf-8了,怎么还是说unicode呢?

百思不得其解,经过百度,google,发现只用添加以下代码就行:

运行代码文件,发现输出正常了

当然,直接打印整个元组对象是不能直观的看到内容的,打印出来的是unicode码,而python3就可以

总结

好了,一路过来解决3个编码问题,都需要设置编码为

注意,的编码设置中间没有

给出最后的完整代码

(完)

看完本文有收获?请转发分享给更多人

关注「Python那些事」,做全栈开发工程师

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181221B07IWC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券