加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

【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,直接拷贝过去经常会出现乱码。
 
  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
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!