get="_blank">linux系统下的Vi编辑器是大部分程序员所使用的代码编辑工具之一。在使用过程中,经常会遇到因为编码格式问题导致出现乱码的情况。特别是在编辑中文代码时,这种情况更加常见。本文将介绍如何。
1. 确认文件编码格式
在使用Vi编辑器打开文件时,首先需要确认文件的编码格式是否为UTF8。可以使用file命令查看文件的编码格式。假设要查看的文件名为test.txt,则可以在终端中输入以下命令:
file -bi test.txt
该命令可以输出文件的编码格式,如果其输出结果为“text/pln; charset=utf-8”,则证明该文件的编码格式为UTF8。如果输出结果为其他编码格式,则需要进行转换。
2. 转换文件编码格式
如果文件编码格式不是UTF8,则需要进行转换。可以使用iconv命令将其转换为UTF8编码格式。假设要转换的文件名为test.txt,转换后的文件名为test-utf8.txt,则可以在终端中输入以下命令:
iconv -f [from_code] -t utf-8 test.txt -o test-utf8.txt
其中,from_code为原文件的编码格式,可以使用iconv -l命令查看系统支持的所有编码格式。该命令将原文件从from_code格式转换为UTF8格式,并将其输出到test-utf8.txt文件中。
3. 更改Vi编辑器编码格式
在确认文件编码格式为UTF8后,还需要确保Vi编辑器的编码格式也为UTF8。可以使用以下命令设置Vi编辑器的编码格式:
set encoding=utf-8
该命令将Vi编辑器的编码格式设置为UTF8,从而避免在编辑UTF8格式的文件时出现乱码问题。
4. 自动识别文件编码格式
为了方便使用,可以设置Vi编辑器自动识别文件的编码格式。可以在.vimrc文件中添加以下命令:
set fileencodings=utf-8,gbk,cp936,gb18030,big5,euc-jp,euc-kr,ucs-bom,shift-jis,iso-2023-jp,default
set fileformats=unix,dos,mac
该命令将Vi编辑器设置为自动识别常见的编码格式,并且支持不同操作系统下的文件格式(包括Unix、DOS和Mac)。
5. 安装中文字体
在使用Vi编辑器编辑中文代码时,可能会出现中文字符无法正确显示的问题。这是因为系统中没有安装对应的中文字体。可以使用以下命令安装中文字体:
sudo apt-get install fonts-wqy-zenhei
该命令将安装文泉驿微米黑字体,该字体支持中文、英文和日文等多种语言。
在使用Vi编辑器时,需要注意文件和编辑器的编码格式是否一致,以及Vi编辑器是否支持对应的编码格式。在编辑中文代码时,还需要安装对应的中文字体。通过上述方法,可以有效。
相关问题拓展阅读:
linux系统上出现乱码怎么解决
linux 中文显示乱码解决办法, 其实是有多种情况的, 有一部分是由于终端默认的设置造成的
vi /etc/sysconfig/i18n
将内容改为
LANG=”en_US.UTF-8″
SUPPORTED=”zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”latarcyrheb-sun16″
将内容迟碧拍改为
LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”码羡
SUPPORTED=”zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”lat0-sun16″
不用重启,马上就生效.
这样中文在SSH,telnet终端一般可以正常显示了。
如果还是不行,可以这慧春么做:
1、console终端乱码
在/etc/profile文件的最后一行添加如下内容:
export LC_ALL=”zh_CN.GB18030″
2、xwindow终端乱码
在/etc/sysconfig/i18n文件的最后一行添加如下内容:
export LC_ALL=”zh_CN.GB18030″
关于linux vi utf8乱码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
Vi编辑的shell脚本如何执行啊?
我觉得你的要求有点奇怪,好像是为了获取某些变量以便进一步处理,那你为什么不直接在shell脚本中处理呢?以下是我的处理办法:1. 进入指定目录问题这涉及到进程生存周期的问题,实际上你在shell脚本写cd /data/wcd/www/时,在执行的时候已经进入了,如果脚本中还后其他指令或动作,比如ls,都是可以正确执行的,但是在脚本执行完毕回到父进程时,路径信息不会保存。 如果你只是想进入这个目录,一个变通的办法是使用一个变量来保存这个路径,比如在中export path1=/data/wcd/www/,然后在使用的时候输入cd $path12. 简单的办法,编写一个脚本,比如叫fullpath,置为可执行(chmod 755 fullpath),放在$PATH可搜索路径下,脚本内容为:#!/bin/bashecho `pwd`/$1这样在使用的时候,执行fullpath 就会打出/home/wcd/3. 不太理解你要做什么,其实linux下很多命令是二进制的,不可以用vi编辑的……一般默认vi编辑的文件是当前目录下的,如果加入绝对路径就编辑绝对路径指定的文件。 如果你的目的就是编辑某个type显示的文件,可以参照2类似的方法,写个shell脚本文件去处理。

java在linux平台下出现乱码,如何解决
检查下filter的配置(UTF-8);如未只用filter,则可用String name= (name);(new String()((ISO-8859-1),UTF-8));
如何解决SSH Secure Shell Client中文乱码
方案一:修改linux服务器的环境变量使用linux,在用户根目录下有一个_profile配置文件,该配置只对当前用户有效.若对所有的用户有效,修改/etc/profile文件使用ls -a命令可以查看到该文件.使用vi编辑器打开该文件后,在其中加入lang=zh_2312export lang即可正常显示中文.更改_profile配置文件后,该文件内容如下:# _profile# get the aliases and functionsif [ -f ~/ ]; then. ~/# user specific environment and startup programspath=$path:$home/binlang=zh_2312export pathexport langunset username方案二:或使用其他远程登陆软件,并修改配置,将字符编码设置为utf-8。 ps:远程登陆软件 命令行界面putty,cterm,securecrt,含ftp功能的有filezilla,secure shell client,图形界面的有xming,xshell,xmanager等下面以putty和securecrt为例。 修改securecrt设置:选项(options)->会话选项(session options)->外观(appearance)->字符(character),选择utf-8。 putty选择配置窗口左边的windows—— translation,在右边的 received data assumed to be in which character set 下拉列表中选择“utf-8”
发表评论