在 linux服务器上运行代码报错:
Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in ordinal not in range(128)
但是在windows上面运行代码正常。
原因是因为:linux系统语言导致的。
查看了一下系统环境编码

>>> import sys
>>> sys.stdout.encoding
'US-ASCII'

而另一台能正常打印的机器是 en_US.UTF-8

解决办法

(1)设置环境变量LANG

在linux或Mac上设置环境变量的方式一样,编辑~/.bash_profile文件(’~’指的是用户登录后的默认目录),添加一行:

export LANG="en_US.UTF-8"

保存退出后重新打开命令行控制台

(2)使用PYTHONIOENCODING

在运行python命令前添加参数 PYTHONIOENCODING=utf-8 python test.py

该参数的解释可查看官方文档:
https://docs.python.org/3.6/using/cmdline.html#envvar-PYTHONIOENCODING

(3)重新定义标准输出

在代码中添加 sys.stdout = codecs.getwriter(“utf-8”)(sys.stdout.detach()) ,使代码变为:

import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
print('中文')
---------------------
作者:蓝鲸123
来源:CSDN
原文:https://blog.csdn.net/th_num/article/details/80685389
版权声明:本文为博主原创文章,转载请附上博文链接!

Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)的更多相关文章

  1. 【转】Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)

    [转]Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128) ...

  2. 【转】Python3—UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1

    转自:https://blog.csdn.net/AckClinkz/article/details/78538462 环境 >>> import sys >>> ...

  3. (转)python3 urllib.request.urlopen() 错误UnicodeEncodeError: 'ascii' codec can't encode characters

    代码内容: url = 'https://movie.douban.com/j/search_subjects?type=movie'+ str(tag) + '&sort=recommend ...

  4. (转) Python3—UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1

    (转)python(三):Python3-UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1 python ...

  5. python输出字符串,UnicodeEncodeError: 'ascii' codec can't encode characters in position问题

    2017-06-28更新:换到python3.x中,编码问题减少了很多.这篇博文不适用于python3.x http://blog.sina.com.cn/s/blog_64a3795a01018vy ...

  6. Mac sublime 编译Python UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-8: ordinal not in range(128)

    刚学Python,想打印个“hello 张林峰”,代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- print('hello 张林峰') 用su ...

  7. Python编码问题:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(12

    今天安装了PyScripter编辑器,刚要写代码,突然就出现异常: <span style="font-size:14px;color:#ff0000;">>&g ...

  8. Pip 安装 出现UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-5: ordinal not in

    在Python 环境下,使用PiP 命令安装时,报错提示: UnicodeEncodeError: 'ascii' codec can't encode characters in position ...

  9. UnicodeEncodeError: 'ascii' codec can't encode characters in position 14-15: ordinal not in range(128)

    python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报类似这样的错误. UnicodeEncodeError: 'ascii' codec can't ...

随机推荐

  1. 设计模式学习--面向对象的5条设计原则之开放封闭原则--OCP

    一.OCP简介(OCP--Open-Closed Principle):Software entities(classes,modules,functions,etc.) should be open ...

  2. C# Hadoop学习笔记(一)—环境安装

    一.安装环境 1,前期准备:官网下载“NuGet Package Manager”,按自己已有的VS环境下载对应版本: 2,利用NuGet下载Hadoop For .NET SDK,地址“http:/ ...

  3. [Python] 函数基本

    使用def 函数名(): 来定义一个函数,函数体一缩进块的形式写,返回结果是return xx 例如: def myAbs(x): if x >= 0: return x else: retur ...

  4. Color the ball(hdu1556)(hash)或(线段树,区间更新)

    Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. 启动SpringBoot项目

    Eclipse创建Spring Boot项目 1.访问http://start.spring.io/ 解压引入Maven项目 2.建议的目录结构 com +- example +- myproject ...

  6. Retrofit 2.0 使用和原理

    使用教程: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1016/3588.html retrofit2 与okhttp关系 ...

  7. 从返回的json格式的data数据内随机取得n个

    var arr=[ { "ceo":"张无忌", "conmpany":"阿里妈妈有限公司", "addres ...

  8. POJ3693(SummerTrainingDay10-J 后缀数组)

    Maximum repetition substring Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10241   Ac ...

  9. python学习之老男孩python全栈第九期_day004作业

    看代码写结果:1. a=[1,2,3,6,"dfs",100]s=a[-1:]print (s) 结果:[100] 2. s=a[-1:0:-1]print(s) 结果:[100, ...

  10. document.head.appendChild(element) 在 IE8 及以下报错

    问题: 在开发中会遇到动态添加 script 标签的情况. 代码如下: var oScript = document.createElement('script'); oScript.src = 'd ...