python中烦人的编码问题

被Python2烦了一天写个感想


mysql数据中都是UTF编码,导出到文件称csv还是xls都是utf-8,用python的pandas读取可以,但每次写代码的时候都需要很小心看文件原来是什么编码

比如如果在read_csv()中没用encoding转换为Unicode编码的话在后面的字段名什么都要用.decode(‘utf-8’)来解码巨麻烦,而且在用to_csv()之类的保存时候还得再次用到encoding编码将其Unicode转换为utf-8,而且好像window都不认utf-8的,果然还是应该转换为gbk呢,,,

最最关键是python在shell和自带的IDEL中的编码竟然是不同的!!明明在IDEL中用encoding=utf,也就是 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#coding=UTF-8

print repr('我')

#这个是一个utf编码

print repr(u'我')

#这个是一个Unicode

print repr('我'.decoding='UTF-8')

#这个是一个Unicode

但在shell中却是:

print repr('我')

#这个是一个GBK编码

print repr(u'我')

#这个是一个用unicode来读的GBK编码,也就是乱码。。。

print repr('我'.decode('gbk'))

#这个才是一个Unicode

以后再window平台不管三七二一都改成GBK编码算了,省心

shikanon wechat
欢迎您扫一扫,订阅我滴↑↑↑的微信公众号!