在linux环境下,有时候 vi 打开文件会遇到中文乱码问题,或者是原本可以正常执行的命令转移到另一台机器上就没法顺利执行了。

上面说的其实是两个问题,首先来说 vi 打开文件遇到中文乱码问题。

vi 文件名称    打开文件一般这样展示

文件内容...
~
~
"文件名称" [converted][dos] xxL, yyC

可以看到最底下显示 “文件名称” [converted][dos] xxL, yyC

  • converted表示已经通过转换,这个转换是vi默认识别出的字符集,也是乱码的来源(请看后面解释)
  • dos表示是dos的格式,主要体现在回车换行上
  • xxL表示有xx行,L是行数lineNum的缩写
  • yyC表示有yy个字符,C表示字符格式,这里的数量和字符集有关系

如果要看当前文件的编码格式,请输入:set fileencoding

文件内容...
~
~
:set fileencoding

一般从windows中传入的文件,vi找不到对应的字符集,最后使用了fileencodding=latin1,导致乱码产生。
还可以指定 vi 查看文件的使用的编码格式,在 ~/.vimrc 文件中添加以下内容:set encoding=utf-8 fileencodings=utf-8 (这里是utf-8为例)。 这样就可以让vi自动识别文件编码,就是依照fileencodings提供的编码列表尝试,如果没找到适合的编码格式,就用latin1(ASCII)编码打开,这里解释了上面乱码的原因。

解决步骤:

先指定字符集的方式打开文件,一般来说指定GB2312或者GB18030。看下是否出现乱码,如果没有中文乱码,那么恭喜。

vi 文件名称 -c "e ++enc=GB2312"
vi 文件名称 -c "e ++enc=GB18030"

然后将文件保存为utf-8(一般都是utf-8编码),如果要转换编码并且保存,记得使用 :w 命令。

文件内容...
~
~
:set fileencoding=utf-8

再来说一下原本可以正常执行的命令转移到另一台机器上就没法顺利执行的问题。

从windows上编辑脚本之后传到linux服务器可能会出现的,主要是回车换行的问题。
异常提示表现为:

文件名称: line xx: $'\r': command not found
文件名称: line xx: $'\r': command not found
文件名称: line xx: $'\r': command not found

请使用 vi 文件名称 打开文件,然后执行 :set fileformat 命令

文件内容...
~
~
:set fileformat

如果显示为 fileformat=dos 那应该就是找到问题了关键了。

解决方式:

使用 vi 文件名称 打开文件之后,使用命令 :set fileformat=unix 可以解决,最后记得 :w 保存

文件内容...
~
~
:set fileformat=unix

vi 遇到乱码问题——解决记录相关推荐

  1. 解决vi中文乱码问题

    问题源于SI中编辑的注释,在虚拟机中,用记事本打开的可以显示正常的中文注释,在vi(vim)中编辑却显示乱码: 解决vi中文乱码问题 乱码, 中文, 解决 由于在windows下默认是gb编码,而我的 ...

  2. linux vi 打开乱码,liunx 中使用vim 打开 txt文件时 中文出现乱码的解决办法

    出现乱码,说明软件读取文件的编码方式和软件保存文件的编码方式不同,只要二者相同了,就不会出现乱码,所以,解决乱码问题,就是实现二者统一的过程: 此次系统的默认的编码方式为utf-8,而我的vim初始使 ...

  3. 《Python常见问题》记录2:Python写入CSV的数据用Excel打开会乱码怎么解决?

    问题描述:在使用python爬虫时,为了将数据保存到本地,可能相比于excel表格更多的会用到csv表格,最近的一次爬虫操作中,我将数据保存到csv表格中后打开发现中文内容全部乱码,如下图: 接下来将 ...

  4. linux mysql 日志乱码_Linux下MySQL保存进去数据为乱码的解决办法

    mysql默认的字符编码是latin1,而我用的是utf-8,存入数据库就变成了?????这样的乱码,解决方法: 1.windows下:修改my.ini文件,有 mysql默认的字符编码是latin1 ...

  5. linux oracle查询乱码问题,Linux环境Oracle显示乱码的解决方法

    Linux环境Oracle所有出现汉字的地方,都以?替代,或者是直接乱码.有时候报错提示也出现乱码. 故障现象: Linux环境Oracle所有出现汉字的地方,都以?替代,或者是直接乱码.有时候报错提 ...

  6. Mysql 乱码的解决

    为什么80%的码农都做不了架构师?>>>    Mysql 乱码的解决 首先在命令行下进入mysql编辑模式输入 mysql> show variables like 'cha ...

  7. ubuntu下eclipse打开window下的java文件,注释内容为乱码,解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 今天打开了以前的工程,想看看以前写的代码,打开后发现以前的java源文件的注释变成了乱码,于是在google上开始了搜索,得到 ...

  8. 免费的FTP linux 服务器中文,linux ftp服务器的搭建和中文字体乱码的解决

    本篇文章主要介绍了Centos 下搭建FTP上传下载服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 首先判断你服务器上是否安装了vsftpd 安装vsftpd ...

  9. linux解压文件名乱码,linux下解压zip文件时,文件名乱码的解决(转载)

    转自:http://blog.sina.com.cn/s/blog_6261f8690101c1gx.html windows下的zip文件,在linux下解压时,经常会出现文件名乱码的情况. 主要原 ...

最新文章

  1. 《Spark与Hadoop大数据分析》——1.2 大数据科学以及Hadoop和Spark在其中承担的角色...
  2. php对象转数组的黑技术
  3. 大数据查询——HBase读写设计与实践--转
  4. 十一、Powerbi函数篇
  5. 【最详细解析】1052 卖个萌 (20分)_28行代码AC
  6. php打印布尔型,PHP数据类型之布尔型的介绍_PHP
  7. 最速下降法和牛顿方法的Python实现和MATLAB实现
  8. (2)ZYNQ FPGA加载比特流(FPGA不积跬步101)
  9. Ssm角色权限后台管理实战开发
  10. redisrabbitMQ安装
  11. spring boot: Whitelabel Error Page的解决方案 --转载https://blog.csdn.net/sinat_31270499/article/details/822
  12. 视频批量消重 短视频解析去水印在线
  13. 零基础如何学习计算机语言
  14. 疯狂考证的两年:通过CFA、FRM、CMA经验与收获
  15. python计算正整数各位之和_关于python:计算两个正整数或负整数之和
  16. linux系统mysql密码忘记了怎么办_Linux中MySQL密码忘了怎么办
  17. Unity VFX学习系列 —— 效果制作(烟花)
  18. uni-app实现PDF预览功能(避坑看这)
  19. android之CardView的使用
  20. 【云计算的1024种玩法】一.半小时轻松搭建属于自己的Discuz论坛

热门文章

  1. 怎么办理质量管理体系认证证书ISO9001?
  2. 最强Dot Net教程资料集合
  3. 如何去除PDF的水印?【9种方法总结】
  4. python安装虚拟环境没有activate_python安装虚拟环境
  5. python.plt 画三维图像
  6. 做生意和追女人,“绝色真经”!
  7. UNREAL4 PROPERTY SYSTEM
  8. 计算机c盘属性不显示安全选项,Win10系统下磁盘属性没有安全选项卡怎么解决?...
  9. 代码技巧1.类似于登录、注册界面要判断登录账号是不是空,验证码是否正确等,怎么写比较舒服一点?
  10. Python 发红包(用numpy)