码迷,mamicode.com
首页 > 编程语言 > 详细

Python的编码问题

时间:2017-10-29 18:36:49      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:out   报错   imp   语言   问题   port   tde   dede   utf8   

Unicode

  什么是Unicode:Unicode 是计算机可以支持这个星球上多种语言的秘密武器。Unicode使用一个或多个字节来表示一个字符。

UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe6 in position 0: ordinal not in range(128) 问题的解决方法及原理:

  该问题是在python2中将中文进行编码时报的错,意思是ASCII编码的最大长度为128,对中文进行解码时超出了这个范围。因为程序要对中文进行编码时首先要将中文解码成Unicode(系统默认设置是ASCII)。

  解决方法:

  一、在脚本前面设置文件的默认编码方式为utf8

1 # -*- coding: utf-8 -*-
2 #!/usr/bin/env python
3 import sys
4 reload(sys)                     # 重新导入
5 sys.setdefaultencoding(utf8)  # 设置默认编码方式为utf8

  

  二、在对中文进行编码前向解码为utf8 格式    

1 # 报错的代码
2 str = "中文字符串"
3 str_out = str.encode(utf8)
1 # 正常的代码
2 str = "中文字符串"
3 str = str.decode(utf8)
4 str_out = str.encode(utf8)

 

  三、在定义中文字符串之前先指定字符串的格式,比如:

1 # 定义时指定字符串编码格式
2 str = u"中文字符串"
3 str_out = str.encode(utf8)

 

    

 

Python的编码问题

标签:out   报错   imp   语言   问题   port   tde   dede   utf8   

原文地址:http://www.cnblogs.com/tester-xt/p/7750487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!