linux中字符乱码解决方法介绍

发布时间 - 2019-12-07 00:00:00    点击率:

远程登录linux服务器用vim在终端下编辑查看文件经常会遇见各种中文乱码问题。

做如下设置可基本解决vim中文乱码问题

首先查看系统对中文的支持

locale -a | grep zh_CN

输出样例如下

zh_CN.gbk

zh_CN.utf8

vim 只能正确识别列表中的中文编码文件,如需识别其他编码类型的中文文件,则需要做系统升级

vi ~/.bash_profile

文件末尾添加

export LANG="zh_CN.UTF-8"

export LC_ALL="zh_CN.UTF-8"

*教程推荐:linux视频教程

vim与编码相关的参数:

1、eencoding,用于配置打开文件和保存文件的编码,但只能有一个值,只适合少数文件都是同种编码的环境,所以一般不使用

2、fileencodings, 从名字上看就知道是fileencoding的增强版,可以配置多种不同的编码,常见的配置为,配置好之后,列表中的文本编码只要合法,都能被vim正确 的读取,建议配置:set fileencodings=utf-bom,utf-8,gbk,gb2312,gb18030,cp936,latin1

3、encoding,vim内部编码,vim读取文件之后,但并不以读取文件的编码来处理,而是会转换成内部编码的格式,这个编码一般与操作系统相关,linux下utf-8居多,中文windows下则是gdk,建议配置:set encoding=utf-8 

4、termencoding,vim输出的编码,输出指输出到操作系统或命令终端等,默认与操作系统的语言编码一致,如果使用linux命令终端,建议终端和linux系统配置相同的编码,然后配置相同的termencoding,否则顾全了vim就顾不上shell,不过如果shell不存在中文名文件,则配置终端和 termencoding一致即可,对于windows,能自动的识别gbk和utf-8,不用特殊配置,建议配置:set termencoding=utf-8

5、fileformats,用于区分操作系统,主要是回车\r\n的区别,建议配置:set fileformats=unix,dos

常见的乱码有以下几种情形:

(1)将windows环境下的文件rz到linux下时文件出现乱码

解决方案:

1、在rz之前使用notepad++将文件格式转化为UTF-8无BOM格式或者ANSI编码格式;

2、set encoding=utf-8;

(2)secureCRT或者xterm2编辑环境中出现乱码,只需在会话选项中调节字符编码为GB2312或者UTF-8

(3)当对日志文件进行vim编辑时出现乱码,大多数情况下是因为日志文件的格式为GB2312。

解决方案:1.set encoding=GB2312;2如果方案1不起作用的话,调整secureCRT或者xterm2的编辑环境为GB2312

(4)wget下载文件名乱码

解决方案:一般情况下加上–restrict-file-names=nocontrol,例如wget --restrict-file-names=nocontrol -m www.xxx.com/

(5)cat文件正常,vim文件不正常

解决方案:直接写入/etc/vim/vimrc  ,最后一行加上

set fileencodings=gb2312,utf-8  

set fileencoding=gb2312  

set termencoding=utf-8  


# linux  # 操作系统  # 出现乱码  # 都是  # 是因为  # 都能  # 则是  # 列表中  # 只需  # 要做  # 能有 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何与Inertia.js和Vue/React构建现代单页应用  如何用景安虚拟主机手机版绑定域名建站?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Laravel如何保护应用免受CSRF攻击?(原理和示例)  JavaScript如何实现类型判断_typeof和instanceof有什么区别  iOS正则表达式验证手机号、邮箱、身份证号等  浅谈javascript alert和confirm的美化  详解CentOS6.5 安装 MySQL5.1.71的方法  如何正确下载安装西数主机建站助手?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  详解Oracle修改字段类型方法总结  Thinkphp 中 distinct 的用法解析  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  JavaScript如何操作视频_媒体API怎么控制播放  Laravel如何创建自定义Facades?(详细步骤)  制作企业网站建设方案,怎样建设一个公司网站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  怎么用AI帮你设计一套个性化的手机App图标?  如何快速搭建高效可靠的建站解决方案?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  🚀拖拽式CMS建站能否实现高效与个性化并存?  C++时间戳转换成日期时间的步骤和示例代码  开心动漫网站制作软件下载,十分开心动画为何停播?  教你用AI润色文章,让你的文字表达更专业  网易LOFTER官网链接 老福特网页版登录地址  如何快速生成ASP一键建站模板并优化安全性?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  iOS UIView常见属性方法小结  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  HTML 中动态设置元素 name 属性的正确语法详解  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何快速辨别茅台真假?关键步骤解析  Laravel怎么上传文件_Laravel图片上传及存储配置  如何快速搭建高效WAP手机网站?  nginx修改上传文件大小限制的方法  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  如何在Windows 2008云服务器安全搭建网站?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何用已有域名快速搭建网站?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】