python学习笔记一(python 编码)
来源:互联网 发布:js获取隐藏控件的值 编辑:程序博客网 时间:2024/06/05 11:02
从接触python开始,python的编码问题就一直困扰着我,现在总结下平时遇到的编码问题。
1、中文显示问题
对于我这种英语不好的同志来说,在python代码中写中文注释再普通不过了,这就带来了一个编码的问题。
#!/usr/bin/pythonb = '中文测试'print b
上述代码会报错:SyntaxError: Non-ASCII character '\xe4'
原因是python默认采用ASCII编码保存文件,在ASCII表中没有表示中文的字符,因此无法将中文以ASCII码的形式保存在文件中。
解决上述问题的方法是:在python文件第二行加上#coding=utf-8(gbk也行),设置文件已utf8编码格式存储。
2、str字节串和unicode混用
在很多情况下,我们会在代码中拼接字符串(包括格式化):
#!/usr/bin/python# -*- coding: utf-8 -*-b = '中文测试'c = u'test'd = b + cprint d上述代码会报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0
原因:python遇到str对象和unicode对象时,会自动将字节串自动decode为unicode,可以等效为decode(sys.defaultencoding)。python的系统默认编码为ASCII,所以将中文的字节串以ASCII编码方式解码时会报错。
解决方法如下:
import sysreload(sys)sys.setdefaultencoding('utf-8')设置系统的默认编码为utf-8,python自动解码时,会将中文以utf-8编码方式解码。
python写文件时,若传入write的参数是unicode,那么python同样会自动以默认编码进行编码后写入文件。
当然,python的编码问题不止这些,如果遇到相关问题,只需要保证编码流程为str->unicode->str,以unicode为中心,问题就不会太大!
(上述为个人观点,有不足之处望指出)
0 0
- python学习笔记一(python 编码)
- Python学习笔记(一)----Python基础知识
- Python 学习笔记(一) python基础
- python学习一(编码问题)
- python学习笔记(一)
- Python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- python学习笔记(一)
- Python学习笔记(一)
- Python学习笔记(一)
- python学习笔记(一)
- Python学习笔记(一)
- python学习笔记(一)
- Python学习笔记(一)
- python学习笔记:(一)
- Python学习笔记(一)
- VC++11 编译中的一些问题的解决办法
- C++成员对齐方式探讨
- BP神经网络简单理解
- myBatils学习三插入数据
- STL函数模板(即算法)一览
- python学习笔记一(python 编码)
- String s=new String("xyz");创建几个String对象的问题
- [专题]Visual Studi编译环境使用快速入门版
- socket 例子2
- 最小生成树之kruskal算法
- [2011山东ACM省赛] Binomial Coeffcients(求组合数)
- 自动生成java持久层相关,eclipse插件(1)使用篇
- 深入分析classloader
- windows 下使用 pthread