python – 扭曲的Unicode异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 扭曲的Unicode异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1806字,纯文字阅读大概需要3分钟。
内容图文
![python – 扭曲的Unicode异常](/upload/InfoBanner/zyjiaocheng/798/f6f9acda737346b38b771183ee667904.jpg)
在我的生产服务器上,我定期发生unicode错误但不在我的桌面上.它出现在日志中:
2011-03-17 13:14:53+0000 [GameProtocol,941,95.78.43.17] <unicode instance at 0x9e304a0 with str error:
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/twisted/python/reflect.py", line 546, in _safeFormat
return formatter(o)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 21-26: ordinal not in range(128)
>
它不会影响应用程序中的任何逻辑,但它在日志中很烦人.
该服务器在Ubuntu 10.10 Server,Python 2.6.5,Twisted 10.2.0下运行.
桌面是Ubuntu 10.10 Desktop,Python 2.6.5,Twisted 10.2.0.
语言环境是相同的:
$locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
会出现什么问题?
解决方法:
使用Twisted日志系统记录unicode是不安全的.这是产生您所看到的异常的最小示例:
Python 2.6.4 (r264:75706, Dec 7 2009, 18:43:55)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from twisted.python import log
>>> import sys
>>> log.startLogging(sys.stdout)
2011-03-17 11:03:47-0400 [-] Log opened.
>>> log.msg(u'\N{SNOWMAN}')
2011-03-17 11:03:53-0400 [-] <unicode instance at 140508177816384 with str error Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/twisted/python/reflect.py", line 560, in safe_str
return str(o)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2603' in position 0: ordinal not in range(128)
>
>>>
因此,您需要找出正在记录的unicode并停止这样做,可能是以您希望对日志文件进行编码的方式对其进行编码.
内容总结
以上是互联网集市为您收集整理的python – 扭曲的Unicode异常全部内容,希望文章能够帮你解决python – 扭曲的Unicode异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。