【Python】PyCharm 会出现 "UnicodeEncodeError: 'ascii' codec can't encode characters" 错误

简介:

解决:UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-2: ordinal not in range(128) 问题

  • 解决:设置系统的默认编码为utf-8:
 
 
  1. import sys
  2.  
  3. reload(sys)
  4. sys.setdefaultencoding('utf-8')

解决:NameError: name 'reload' is not defined 问题

对于 Python 2.X


  • 1
  • 2
  • 3

对于 <= Python 3.3

对于 >= Python 3.4


  • 1
  • 2

解决:AttributeError: module 'sys' has no attribute 'setdefaultencoding' 问题

  • 原因分析:
 
    
  1. Python3字符串默认编码unicode, 所以sys.setdefaultencoding也不存在了
  • 解决:
 
    
  1. 去掉,sys.setdefaultencoding


 PyCharm 会出现 UnicodeEncodeError: 'ascii' codec can't encode characters 错误

  • 原因分析:由上面两个错误可以看出
  1. 直接“ Run ”会导致变量里的非 ASCII 字符无法通过 write()写入文件,但是变量里的非 ASCII 字符可以通过 print()显示
  2. 如果在间接的在 PyCharm 里的 Terminal 运行'python3 ./main.py'会导致变量里的非 ASCII 字符无法通过 print()显示


  • 解决:真正诡异的是,这段代码可以正常运行在 zsh 里




相关文章
|
JavaScript 前端开发 Python
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.
这篇文章分享了作者在运行前端Vue项目时遇到的关于Python执行环境的问题和解决方法。问题是由于找不到Python可执行文件导致的编译错误,解决方法包括安装编译环境、卸载并重新安装出现问题的`node-sass`包,并重新执行`npm install`和`npm run dev`。
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.
|
Python
【Python】解决Can‘t find model ‘en‘. It doesn‘t seem to be a shortcut link, a Python package or a valid
在使用以下代码时,报错Can’t find model ‘en’. It doesn’t seem to be a shortcut link, a Python package or a valid path to a data directory.
257 1
|
Python Windows
Python:执行py命令,提示: Can‘t find a default Python.
Python:执行py命令,提示: Can‘t find a default Python.
|
JSON 安全 数据格式
7-6|python报错TypeError: can't pickle _thread.RLock objects
7-6|python报错TypeError: can't pickle _thread.RLock objects
|
编解码 程序员 开发者
【Python】已解决:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa1 in position 0: invalid start by
【Python】已解决:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa1 in position 0: invalid start by
12043 0
|
编解码 开发者 Python
【Python】已解决:UnicodeEncodeError: ‘utf-8’ codec can’t encode characters in position 42-43: surrogates
【Python】已解决:UnicodeEncodeError: ‘utf-8’ codec can’t encode characters in position 42-43: surrogates
2326 0
|
6月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
668 102
|
6月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
405 104
|
6月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
315 103

推荐镜像

更多