是Python编码还是别的问题?

kilimanjaroup 2012-08-06 07:12:12
就一句话,网上搜了一个小时,没解决....
print(chr(219))

错误是 UnicodeEncodeError: 'gbk' codec can't encode character '\xdb' in position 0:illegal multibyte sequence
Python 3.2,UTF-8编码的源文件,win7 cmd下直接运行

求助...
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kilimanjaroup 2012-08-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

219是个拉丁字符gbk不支持,NT本身是支持utf16的,不过python貌似调用的是ansi版的api造成
转换出问题,目前只想到chcp代码页。
[/Quote]
试了chcp代码页,还是不行...
先结帖了....
I_NBFA 2012-08-07
  • 打赏
  • 举报
回复
219是个拉丁字符gbk不支持,NT本身是支持utf16的,不过python貌似调用的是ansi版的api造成
转换出问题,目前只想到chcp代码页。
kilimanjaroup 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

Python code
import sys
x = chr(219).encode('utf-8')
sys.stdout.buffer.write(x)
[/Quote]

谢谢楼上诸位的解答,不过只有 bugs2k 给出的可以输出结果(虽然是个乱码,我的是Python 3.2),具体的机制我还要去学习下sys.stdout.buffer.write()...
从2楼3楼来看好像Python2.x下可以输出一个符号,为什么到3.x就反而不支持了呢...又不想卸了3.2再装2.x,暂且放过这个问题了....谢谢...
guofei_gf 2012-08-07
  • 打赏
  • 举报
回复
print在输出前会对内容进行编码,cmd运行时会用默认的gbk编码,但gbk编码里没有那个字符
bugs2k 2012-08-07
  • 打赏
  • 举报
回复
import sys 
x = chr(219).encode('utf-8')
sys.stdout.buffer.write(x)
Gloveing 2012-08-06
  • 打赏
  • 举报
回复
print(unicode(chr(219),'gbk','ignore'))
tim_spac_126 2012-08-06
  • 打赏
  • 举报
回复
$ python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print chr(219)

>>> print('"%s"'% chr(219))
"�"
$


Gloveing 2012-08-06
  • 打赏
  • 举报
回复
219已经不是普通的英文字符的ascii码了

37,721

社区成员

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

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