各种编码问题汇总(持续更新)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014589856/article/details/89478322

1.ubuntu vim 中文乱码

在当前用户的home路径中.vimrc中添加以下内容:

syntax on (这句话一定要添加,括号里面的不要添加进去)

set encoding=utf-8 fileencodings=utf-8

2.Python3编码问题

 1.UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)

  使用locale查看默认语言设置为空,查看python3中此时被默认指定为‘ANSI_X3.4-1968’

root@170bf48a0e61:~/# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
>>> import sys
>>> sys.stdout.encoding
'ANSI_X3.4-1968'

解决办法:

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

export LANG="en_US.UTF-8"

  (2)在运行python命令前添加参数 PYTHONIOENCODING=utf-8 python printcn.py 

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

(3)如何还不能正常运行,则在运行脚本中增加如下内容:

import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')

参考文章:https://blog.csdn.net/th_num/article/details/80685389

猜你喜欢

转载自blog.csdn.net/u014589856/article/details/89478322