Python 3 UnicodeEncodeError: 'ascii' codec can't encode characters

栏目: Python · 发布时间: 7年前

内容简介:之前在我的那个硬件网站【玩点什么】,遇到了一个 Python 的中文编码问题。大抵的问题是一个中文的 URL 的识别问题。在访问 URL之前在网上搜索的相关结果都是 Python 2.7 下才有这个问题。然而,在相关的 python 代码里,我已经使用

之前在我的那个硬件网站【玩点什么】,遇到了一个 Python 的中文编码问题。大抵的问题是一个中文的 URL 的识别问题。

在访问 URL https://www.wandianshenme.com/play/category/搭建指南/ 的时候,报了一个错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range

之前在网上搜索的相关结果都是 Python 2.7 下才有这个问题。然而,在相关的 python 代码里,我已经使用 # -*- coding: utf-8 -*- 声明了 UTF-8 编码,还是报了这个问题。

对于使用 Django,而且 Python 版本是 2.7 来说,可以尝试这么解决:

import sys
from importlib import reload

reload(sys)
if sys.version[0] == '2':
    reload(sys)
    sys.setdefaultencoding("utf-8")

我也尝试了这样的一个方法,但是不 work

export PYTHONIOENCODING=UTF-8

于是,之前便不了了之了。

直到最近我的 iTerm 自动将 Git 相关的内容变成了中文:

枚举对象: 5, 完成.
对象计数中: 100% (5/5), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (3/3), 完成.
写入对象中: 100% (3/3), 705 bytes | 705.00 KiB/s, 完成.
总共 3 (差异 2),复用 0 (差异 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/phodal/play
   5af94c0..573f947  master -> master

我又尝试去解决这个问题,结果发现是类似的问题,只需要:

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

这样一来,问题就解决了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

XSS跨站脚本攻击剖析与防御

XSS跨站脚本攻击剖析与防御

邱永华 / 人民邮电出版社 / 2013-9-1 / 49.00元

《XSS跨站脚本攻击剖析与防御》是一本专门剖析XSS安全的专业书,总共8章,主要包括的内容如下。第1章 XSS初探,主要阐述了XSS的基础知识,包括XSS的攻击原理和危害。第2章 XSS利用方式,就当前比较流行的XSS利用方式做了深入的剖析,这些攻击往往基于客户端,从挂马、窃取Cookies、会话劫持到钓鱼欺骗,各种攻击都不容忽视。第3章 XSS测试和利用工具,介绍了一些常见的XSS测试工具。第4......一起来看看 《XSS跨站脚本攻击剖析与防御》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具