'gbk' codec can't decode bytes in position 22-23: illegal multibyte sequence

shanliangliuxing 2012-11-01 05:09:32
最近用python开发了一个功能,放到服务器上是报:
'acsii' codec can't decode bytes in position 22-23: illegal multibyte sequence
在同事电脑上报:
'gbk' codec can't decode bytes in position 22-23: illegal multibyte sequence
在本地电脑上显示正常,在有的同事电脑上运行正常,有的报:
'gbk' codec can't decode bytes in position 22-23: illegal multibyte sequence
有遇到这个问题的吗?麻烦指导一下,搞了一下午了,分不多,总共就这些了,希望大家给点指导。
...全文
20513 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
youkongjixue 2014-09-26
  • 打赏
  • 举报
回复
加上这句话后运行程序没有结果显示,怎么解决这个问题?
shanliangliuxing 2012-11-05
  • 打赏
  • 举报
回复
确实是编码的问题,在views.py的最上面加上这句就行了:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
在我的Eclipse里面sys.setdefaultencoding('utf8')这句代码会报错,但是确实能起到作用,这一点还不能理解。
crifan 2012-11-05
  • 打赏
  • 举报
回复
前提知识简介: python 2.x中,字符串有两种,一种是(已经被编码的)某种编码类型(比如UTF-8等)的字符串str; 一种是unicode字符串:unicode。 当你输出unicode类型字符串到终端,比如用print打印,则是: 当你的终端,比如windows的cmd下的默认字符编码为GBK或ASCII,则如果打印UTF-8类型的str,则可能会出现你所说的 'acsii' codec can't decode bytes in position 22-23: illegal multibyte sequence 或: 'gbk' codec can't decode bytes in position 22-23: illegal multibyte sequence 而如果是print unicode类型的字符串,则可以正常打印,不会出现这类问题。 所以,估计你是打印的某种编码类型的字符串到终端,所以由于编码不匹配,导致出现此问题。 关于这类问题,可以参考我之前遇到的一些情况: 【已解决】Python字符串处理出现错误:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 0: ordinal not in range(128) 以及我的总结: Python中的 UnicodeEncodeError 关于编码相关的知识,可以去看我写的,足够全了: 字符编码详解
bugs2k 2012-11-03
  • 打赏
  • 举报
回复
编码是个老大难的问题了
qq120848369 2012-11-01
  • 打赏
  • 举报
回复
python是Unicode内码, 代码加载到内存后首先需要转换到unicdoe, 所以你要保证:

1, 你知道你的代码文件是什么编码的.
2, 在代码文件头部#coding指定编码。
Gloveing 2012-11-01
  • 打赏
  • 举报
回复
编码的问题
最好都转化为unicode编码

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧