【Lnx-08】Linux的中文乱码问题
发布时间:2022-11-17 11:21:55 所属栏目:Linux 来源:
导读: 首先广而告之下系列总目录:
乱码问题分为几种:
window到Linux使用默认编码方式不同Linux环境没有设置程序中出现乱码1、window到linux环境导致
window系统一般文件名编码为gbk,直接拷
乱码问题分为几种:
window到Linux使用默认编码方式不同Linux环境没有设置程序中出现乱码1、window到linux环境导致
window系统一般文件名编码为gbk,直接拷
|
首先广而告之下系列总目录: 乱码问题分为几种: window到Linux使用默认编码方式不同Linux环境没有设置程序中出现乱码1、window到linux环境导致 window系统一般文件名编码为gbk,直接拷贝过去经常会出现乱码。 1 基础知识 查看linux设置的编码: [root ~]# echo $LANG zh_CN.UTF-8 [root ~]# locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" 上面是基于centos6.5查询和设置,之前是设置USA.UTF-8,后面把它设置支持中文zh_CN.UTF-8,需要安装支持中文的包 yum -y groupinstall chinese-support 修改和设置编码 [root ~]# vim /etc/sysconfig/i18n LANG="zh_CN.UTF-8" [root ~]# source /etc/sysconfig/i18n 经过上面的设置后,开始基于xftp和xshell做下面的实验。 xshell在文件-->属性--> 终端设置编码,xftp暂时不设置。 2 乱码处理 1 linux文件名乱码 创建测试目录和测试文件,文件名带有中文字符linux编码,文件内容带有中文字符。通过xftp上传到linux服务器:在xftp里面显示中文一切正常。但在linux下面显示发现文件名乱码。 xftp文件-->属性--> 选项,设置为utf-8编码--文件名传输编码。这样显示的文件名就直接是uft-8编码,linux显示就不会是乱码。 通过如上设置后,如果发现压缩包文件在服务器端解压后发现有乱码,那么先在window系统解压,然后整个目录传到服务器上,然后看看传上去的是否还是乱码。 2 文件内容乱码 用cat 查看发现内容乱码,使用时有两种方法, 一种是直接转换,另一种是读取转换。 方法一: iconv -f gbk -t utf8 test测试.txt -o test测试.txt 经过测试已经把文件乱码内容成功转码,同时iconv不做覆盖的时候另外一种写法iconv -f gbk -t utf8 haha.txt > haha.txt.utf8 这种写法不能覆盖,原文件为空。 方法二: 可以考虑直接使用,编码方式使用encoding='gbk'。例如python中如下: 2、Linux环境问题显示乱码(ubuntu为例) apt-get update apt-get clean && apt-get -y update && apt-get install -y locales 1.查看现有语言环境 locale 2.如果没有 en_US.UTF-8 则安装 locale-gen en_US.UTF-8 3.可用语言环境 locale -a 以上非必要,可以直接运行下面: 4.永久更改编码,运行以下命令。 注意 如果是 docker 容器,重启会无效 echo "export LC_ALL=en_US.UTF-8" >> /etc/profile docker 镜像 运行以下代码 : echo "export LC_ALL=en_US.UTF-8" >> /root/.bashrc 5.要让刚才的修改马上生效,需要执行以下命令 完成 source /etc/profile 或:source /root/.bashrc 3、Linux 下matplotlib 中文乱码1 拷贝文件 把Windows的字体C:/Windows/Fonts复制到Linux系统的存放字体路径/usr/share/fonts下(拷贝整个Fonts文件), 如图: cd到/usr/share/fonts/Fonts,也就是拷贝来的文件夹, 建立字体索引信息,更新字体缓存,让字体生效。 2 执行清理 执行rm -r ~/.cache/matplotlib 最好重启jupyter lab或jupyter notebook 3 运行尝试 加载字体 import matplotlib #指定默认字体 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams['font.family']='sans-serif' #解决负号'-'显示为方块的问题 matplotlib.rcParams['axes.unicode_minus'] = False 基本可以正常显示中文了 相关链接 blog.csdn.net/cuker919/article/details/79974702 (编辑:云计算网_汕头站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330478号