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

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


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

查看所有标签

猜你喜欢:

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

Effective STL中文版

Effective STL中文版

[美]Scott Meyers / 潘爱民、陈铭、邹开红 / 清华大学出版社 / 2006-1 / 30.00元

STL是C++标准库的一部分。本书是针对STL的经验总结,书中列出了50个条款,绝大多数条款都解释了在使用STL时应该注意的某一个方面的问题,并且详尽地分析了问题的来源、解决方案的优劣。一起来看看 《Effective STL中文版》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

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

Base64 编码/解码

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

RGB CMYK 互转工具