Ubuntu 10.04-Gedit or Vim 中文乱码问题

Ubuntu 16.04 解压缩zip文件中文乱码 Ubuntu 中文乱码解决, 解压缩文件中文乱码解决 阅读详情

缺省配置下,Ubuntu 的文本编辑器(Ggedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码。出现这种情况的原因是,gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表中的编码将显示为乱码。只要将 GB18030 加入这个匹配列表即能解决乱码问题。以下是解决方法:
1. 命令行
gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferences/encodings/auto_detected "[UTF-8,CURRENT,GB18030,BIG5-HKSCS,BIG5,UTF-16]"   %%需要变更一下编码顺序,根据需要。
2. 图形化方式,适用于 Ubuntu 用户,而不适用于 KUbuntu/XUbuntu 用户
步骤如下:
1)按下 Alt-F2,打开“运行应用程序”对话框,键入“gconf-editor”,打开“配置编辑器”。
2)展开左边的树节点,找到 /apps/gedit-2/preferences/encodings 节点并单击它;双击右边的 auto_detected 键,单击列表右边的“添加”按钮,输入“GB18030”,单击确定按钮。列表的最底部新增加了一个“GB18030”。单击选中它,并单击右边的 “向上” 按钮直到 “GB18030” 位于列表的顶部为止。 %%改完后根据需要把顺序改回来~

 

vim 中文显示问题,解决方法如下:打开vim的配置文件,位置在/etc/vim/vimrc,在其中加入

set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8 %%根据需要变更为其他
set encoding=prc

保存退出,此时vim就能正确显示中文了。


vim编码方面的基础知识:

                 ——此处是vim编辑多字节编码文档(中文)所要了解的一些基础知识,注意其没有涉及gvim,纯指字符终端下的vim。

1. 存在3个变量:
encoding—-该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。你可以把 ‘encoding’ 选项当作是对 Vim 内部运行机制的设定。
fileencoding—-该选项是vim写入文件时采用的编码类型。
termencoding—-该选项代表输出到客户终端(Term)采用的编码类型。
2. 此3个变量的默认值:
encoding—-与系统当前locale相同,所以编辑文件的时候要考虑当前locale,否则要设置的东西就比较多了。
fileencoding—-vim打开文件时自动辨认其编码,fileencoding就为辨认的值。为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。
termencoding—-默认空值,也就是输出到终端不进行编码转换。

由此可见,编辑不同编码文件需要注意的地方不仅仅是这3个变量,还有系统当前locale和、文件本身编码以及自动编码识别、客户运行vim的终端所使用的编码类型3个关键点,这3个关键点影响着3个变量的设定。
如果有人问:为什么我用vim打开中文文档的时候出现乱码?
答案是不确定的,原因上面已经讲了,不搞清楚这3个关键点和这3个变量的设定值,出现乱码是正常的,倒是不出现乱码那反倒是凑巧的。

再来看一下常见情况下这三个关键点的值以及在这种情况下这3个变量的值:
1. locale—-目前大部分Linux系统已经将utf-8作为默认locale了,不过也有可能不是,例如有些系统使用中文locale zh_CN.GB18030。在locale为utf-8的情况下,启动vim后encoding将会设置为utf-8,这是兼容性最好的方式,因为内部 处理使用utf-8的话,无论外部存储编码为何都可以进行无缺损转换。locale决定了vim内部处理数据的编码,也就是encoding。
2. 文件的编码以及自动编码识别—-这方面牵扯到各种编码的规则,就不一一细讲了。但需要明白的是,文件编码类型并不是保存在文件内的,也就是说没有任何 描述性的字段来记录文档是何种编码类型的。因此我们在编辑文档的时候,要么必须知道这文档保存时是以什么编码保存的,要么通过另外的一些手段来断定编码类 型,这另外的手段,就是通过某些编码的码表特征来断定,例如每个字符占用的字节数,每个字符的ascii值是否都大于某个字段来断定这个文件属于何种编 码。这种方式vim也使用了,这就是vim的自动编码识别机制了。但这种机制由于编码各式各样,不可能每种编码都有显著的特征来辨别,所以是不可能 100%准确的。对于我们GB2312编码,由于其中文是使用了2个acsii值高于127的字符组成汉字字符的,因此不可能把gb2312编码的文件与 latin1编码区分开来,因此自动识别编码的机制对于gb2312是不成功的,它只会将文件辨识为latin1编码。此问题同样出现在gbk,big5 上等。因此我们在编辑此类文档时,需要手工设定encoding和fileencoding。如果文档编码为utf-8时,一般vim都能自动识别正确的 编码。

3. 客户运行vim的终端所使用的编码类型—-同第二条一样,这也是一个比较难以断定的关键点。第二个关键点决定着从文件读取内容和写入内容到文件 时使用的编码,而此关键点则决定vim输出内容到终端时使用的编码,如果此编码类型和终端认为它收到的数据的编码类型不同,则又会产生乱码问题。在 linux本地X环境下,一般终端都认为其接收的数据的编码类型和系统locale类型相符,因此不需关心此方面是否存在问题。但如果牵涉到远程终端,例 如ssh登录服务器,则问题就有可能出现了。例如从1台locale为GB2310的系统(称作客户机)ssh到locale为utf-8的系统(称作服 务器)并开启vim编辑文档,在不加任何改动的情况下,服务器返回的数据为utf-8的,但客户机认为服务器返回的数据是gb2312的,按照 gb2312来解释数据,则肯定就是乱码了,这时就需要设置termencoding为gb2312来解决这个问题。此问题更多出现在我们的 windows desktop机远程ssh登录服务器的情况下,这里牵扯到不同系统的编码转换问题。所以又与windows本身以及ssh客户端有很大相关性。在 windows下存在两种编码类型的软件,一种是本身就为unicode编码方式编写的软件,一种是ansi软件,也就是程序处理数据直接采用字节流,不 关心编码。前一种程序可以在任何语言的windows上正确显示多国语言,而后一种则编写在何种语言的系统上则只能在何种语言的系统上显示正确的文字。对 于这两种类型的程序,我们需要区别对待。以ssh客户端为例,我们使用的putty是unicode软件,而secure CRT则是ansi 软件。对于前者,我们要正确处理中文,只要保证vim输出到终端的编码为utf-8即可,就是termencoding=utf-8。但对于后者,一方面 我们要确认我们的windows系统默认代码页为cp936(中文windows默认值),另一方面要确认vim设置的termencoding= cp936。

最后来看看处理中文文档最典型的几种情况和设置方式:

1. 系统locale是utf-8(很多linux系统默认的locale形式),编辑的文档是GB2312或GBK形式的(Windows记事本 默认保存形式,大部分编辑器也默认保存为这个形式,所以最常见),终端类型utf-8(也就是假定客户端是putty类的unicode软件)
则vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。
解决方案1:首先要修正fileencoding为cp936或者euc-cn(二者一样的,只不过叫法不同),注意修正的方法不是:set fileencoding=cp936,这只是将文件保存为cp936,正确的方法是重新以cp936的编码方式加载文件为:edit ++enc=cp936,可以简写为:e ++enc=cp936。
解决方案2:临时改变vim运行的locale环境,方法是以LANG=zh_CN vim abc.txt的方式来启动vim,则此时encoding=euc-cn(locale决定的),fileencoding=空(此locale下文件 编码自动判别功能不启用,所以fileencoding为文件本身编码方式不变,也就是euc-cn),termencoding=空(默认值,为空则等 于encoding)此时还是乱码的,因为我们的ssh终端认为接受的数据为utf-8,但vim发送数据为euc-cn,所以还是不对。此时再用命令: set termencoding=utf-8将终端数据输出为utf-8,则显示正常。

2. 情况与1基本相同,只是使用的ssh软件为secure CRT类ansi类软件。

vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。

解决方案1:首先要保证运行secure CRT的windows机器的默认代码页为CP936,这一点中文windows已经是默认设置了。其他的与上面方案1相同,只是要增加一步,:set termencoding=cp936

解决方案2:与上面方案2类似,不过最后一步修改termencoding省略即可,在此情况下需要的修改最少,只要以locale为zh_CN开 启vim,则encoding=euc-cn,fileencoding和termencoding都为空即为encoding的值,是最理想的一种情 况。

可见理解这3个关键点和3个参数的意义,对于编码问题有很大助力,以后就可以随心所欲的处理文档了,同时不仅仅是应用于vim,在其他需要编码转换的环境里,都可以应用类似的思路来处理问题解决问题。

最 后推荐一款功能强大的windows下的ssh客户端—-xshell,它具有类似secure CRT一样的多tab 的ssh窗口的能力,但最为方便的是这款工具还有改变Term编码的功能,这样我们就可以不用频繁调整termencoding,只需在ssh软件里切换 编码即可,这是我用过的最为方便的ssh工具。它是商业软件,但非注册用户使用没有任何限制,只是30天试用期超出后会每次启动都提示注册,对于功能没有 丝毫影响。


HTML满屏跳动的爱心(完整代码) HTML语言实现满屏跳动爱心的完整代码。 阅读详情

相关推荐

DVWA靶场实战:从搭建到渗透测试的完整指南

本文详细介绍了DVWA靶场的搭建与渗透测试全流程,涵盖LAMP环境搭建、Docker部署及集成环境安装三种方式。通过SQL注入、文件上传漏洞等实战案例,帮助读者掌握Web安全测试技巧,并提供防御方案与进阶调优建议,是网络安全学习的实用指南。

weixin_28312391的博客 488

Ubuntu 10.04-Gedit or Vim 中文乱码问题(转)

缺省配置下,Ubuntu 的文本编辑器(Ggedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码。出现这种情况的原因是,gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表中的编码将显示为乱码。只要将 GB18030 加入这个匹配列表即能解决乱码问题。以下是解决方法: 1. 命令行 gconftool-2 --s...

anzhen3450的博客 228

从‘眼花缭乱’到‘心中有数’:rs-fMRI统计分析全流程避坑指南(附DPABI操作截图)

本文详细解析了rs-fMRI统计分析的全流程,从质量控制到统计模型选择,再到多重比较校正和结果解读。特别针对DPABI软件操作中的常见陷阱提供实用指南,帮助研究者避免FDR和GRF校正等关键环节的错误,实现从数据混乱到清晰分析的转变。

weixin_33686714的博客 398

gedit打开文件显示中文乱码

一、 gedit打开文件显示中文乱码的解决方法(先查看gedit版本)Gedit 2.x版本设置(适用于Ubuntu 11.04及以前) 安装gconf-editor: sudo apt-get install gconf-editor 方式1:启动gconf-editor 在弹出的配置中选择:“apps”—“gedit2”—“preferences”—“encodings”。双击右边名称“aut...

qq_41444640的博客 2512

如何用Python分析20年投资者情绪数据(附ISI和CICSI完整数据集)

本文提供了一份利用Python分析2003-2023年投资者情绪数据的实战指南。文章详细介绍了如何获取并清洗ISI和CICSI数据集,运用Pandas、Matplotlib等工具进行数据探索、可视化与深度分析,包括趋势分解、成分关联及情绪状态划分,旨在帮助读者掌握从数据到洞察的完整流程,为量化金融研究提供方法论支持。

gpu4optimizer的博客 468

Cocos Creator 3.x 实战:用脚本动态加载Spine动画,告别resources硬编码

本文详细介绍了Cocos Creator 3.x中Spine动画的动态加载与挂点系统实战技巧。通过Asset Bundle替代传统resources硬编码方式,实现资源的高效管理和热更新支持,同时结合TypeScript强类型和单例模式优化加载流程。文章还深入探讨了跨平台适配、挂点编程方案及性能优化策略,帮助开发者提升游戏开发效率与灵活性。

weixin_42526353的博客 267

Ubuntu22.04安装中文输入法►由踩坑到上岸版◄

之前一直用的是搜狗输入法,因为20.04取消qt4了没装成,就去尝试别的输入法。谷歌的中文输入法主要是北京分部在做,对google cn的好感度飙升!Ubuntu 设置中打开「区域与语言」—>「管理已安装的语言」,然后自动检查已安装语言是否完整。切换输入法的快捷键是ctrl+space,可以在刚关闭的输入方法设置界面里第二项Global Config里修改快捷键。没办法同时输入多个文字,界面很拉跨,字体很小,序号较乱,输入的字体总不是我想要的等等…一打开我就傻了,这个界面很陌生,能用的只有“双拼”…

成名每在穷苦日 8425

PythonOCC基础使用:建模——倒角倒圆(二维+三维)

占坑

weixin_42755384的博客 4638

Ubuntu 11.04下gedit 中文乱码和 vim中文乱码问题

(一)gedit 中文乱码解决方法: 1. 按下 Alt-F2,打开“运行应用程序”对话框。或者终端运行 gconf-editor 2. 在文本框中键入“gconf-editor”,并按下回车键,打开“配置编辑器”。 3. 展开左边的树节点,找到 /apps/gedit

lilongherolilong的专栏 1997

OpenClaw智能体应用第一集--飞书多智能体配置

本文介绍了智能体(Agent)的核心概念与配置实践。Agent作为独立作用域的"大脑",包含模型(认知引擎)、记忆系统(短期/长期记忆)、人设(角色定义)、工具(外部能力调用)、规划执行(任务拆解)、运行环境等核心要素。每个Agent拥有唯一agentId标识,通过accountId区分渠道账号,Binding机制实现消息路由。实践部分展示了通过命令行配置多个智能体(如writer)的过程,包括插件注册和工具加载。系统支持多Agent架构,可根据不同场景需求灵活配置专属智能体。

weixin_44626085的博客 1746

机器人视觉联动精度优化:从±2mm到±0.02mm,产线级手眼标定全实战

2025年我接东莞长安Type-C接口分拣项目的时候,就是栽在了手眼标定上:实验室里标定完精度±0.5mm,一到产线直接掉到±2mm,机器人10次有3次抓不住,2000多件Type-C接口直接报废,还撞坏了2套汇川SCARA机器人的吸盘,本来45天的工期拖了3个月,不仅没赚到钱,还倒贴了几万块。手眼标定从来不是简单的跑个demo、算个矩阵就完事了,它是一个系统工程:从硬件选型、安装固定、相机标定、标定流程、算法优化、环境控制、重复验证,每一个环节都会影响最终的联动精度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 384

ubutnu 16.04 下 gedit和vim的中文乱码问题

装了个ubutnu16.04,把例程的代码copy进去打算看一看,发现文章里的中文注释显示都是乱码。鼓捣了很久修复完了,现将解决办法写下来。

可见光分子 1002

QCC305x-QCC304x系列开发教程之应用程序子系统详解 嵌入式

本文对QCC305x-QCC304x系列芯片的应用程序子系统进行了详细解析,并给出了一个LED闪烁的示例代码。嵌入式系统的开发既需要理论知识的支持,也需要实践经验的积累,希望本文能够为读者在QCC305x-QCC304x系列芯片的开发中提供一些有益的指导。QCC305x-QCC304x系列芯片提供了丰富的外设接口,包括UART、SPI、I2C等,开发者可以根据需求选择适合的接口进行数据传输和控制。QCC305x-QCC304x系列芯片的应用程序子系统是整个嵌入式系统的核心部分,负责管理和执行各种应用程序。

CodeMaven的博客 225

ubuntu 12.04 vim gedit中文乱码

添加中文字符编码: $sudo vim /var/lib/locales/supported.d/local #添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030 使其生效: $sudo dpkg-reconfigure locales vim: 打开vim的

qxb1229的专栏 4113

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

gedit中文乱码之ubuntu解决方案

缺省配置下,用 Ubuntu 的文本编辑器(gedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码。 出现这种情况的原因是,gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表中的编码将显示为乱码。您要做的就是将 GB18030 加入这个匹配列表。我所用的gedit版本是3.x系列,在使用本文所用的方法之前,请确保你所用的版

lovey599 1089

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Ubuntu中vim和gedit显示中文乱码

Ubuntu中vim和gedit显示中文乱码

突围 1302

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ubuntu14.04中gedit打开txt文档出现乱码

在ubuntu14.04经常碰到win下的txt文档,打开就是乱码。百度说选编码为GBK,GB2312来解决 1,小文件vim打开就行 2,在命令行执行: $ gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CUR

heybob的专栏 4314

linux下gedit中文乱码,解决Ubuntu 11.04下Gedit 中文乱码和 vim中文乱码问题 (txt)

今天在Ubuntu 11.04下打开txt 发现是乱码,于是在网上搜索了很多,都说的都差不多:如下:终端-》gconf-editor->apps->gedit-2->preferences->encodings->auto_detected->加入gbk,gb18030置顶之类的,但是还是没有解决乱码问题。sudo gconf-editor里面也是这样做 ,不过...

weixin_29231263的博客 120

ubuntu中vim和gedit中文乱码解决方法

*****************************************************gedit**************************************************************** 解决办法: 1).运行 gconf-editor,把 gedit 的自动检测编码设置修改一下,加入 GB18030,GB2312 ,GBK 等几个

DC的陋室 1821

ubuntu 12.04 vim gedit中文乱码解决

ubuntu 12.04 vim gedit中文乱码解决   添加中文字符编码: $sudo vim /var/lib/locales/supported.d/local #添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030 使其生效: $sudo dpkg-re

mortree 658

ubuntu 10.04 vi 与 gedit 打开文件显示中文乱码的解决方法

一、 gedit 打开文件显示中文乱码的解决方法 装好了Ubuntu 10.04后,打开部分Windows下的txt文本文件的时候,中文显示为乱码。但是自己用Gedit编写新文件的时候,输入的中文却可以正常显示,保存后再退出也可以正常显示。而且对于Windows下的文本文件,也不是全部含有中文的都显示为乱码。 整理下思路,如果真的是中文无法正常显示的问题,也就是字体设置问题,是不应该有文件能够

RopenYuan的专栏 3830

U盘挂载,gedit,vi,文本模式中文乱码等等问题

gedit打开包含中文的文件乱码      用gedit打开一些文件的时候,比如一些配置文件,txt文件等等,不过主要是个人的txt文件,如果包含中文,会出现乱码。在网上找了很多方法,试了都没有成功,最后才找到一种方法,见链接点我。当然对于我的系统ubuntu12.04版来说,主要就是一句命令:gsettings set org.gnome.gedit.preferences.encodin

人至贱则无敌 764

ubuntu 12.04 乱码问题

参考: http://blog.csdn.net/qxb1229/article/details/8260402 1. gedit 乱码 $ gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURREN

sinkary的专栏 1399

解决Ubuntu 10.04中vim和gedit显示中文乱码

可是当你重新安装完10.04以后,你会发现gedit和vim打开中文都会乱码,因为我没 选择从9.10升级,而是重新安装,所以不知道升级是否有这种情况发生。 下面是解决方法 打开vim的配置文件,位置在/etc/vim/vimrc 在其中加入 set fileencodings=utf-8,gb2312,gbk,gb18030 set termencoding=utf-8 set encoding...

入海数沙 190

vim / gedit 打开GBK文件乱码问题

刚从windows转移到ubuntu 9.04中,免不了处理一些GBK编码的文件问题,默认的用vim打开会发现文字的乱码现象。从网上找了找解决办法,主要是编码识别的时候的编码设置问题,具体办法如下。 1.对于vimvim .vimrc将 set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 写

BlUe H0Use 2393

解决ubuntu11.04下gedit 中文乱码和 vim中文乱码问题 (txt)

今天打开txt 发现是乱码,于是在网上搜索了很多,都说的都差不多: 如下: 终端-》gconf-editor->apps->gedit-2->preferences->encodings->auto_detected->加入gbk,gb18030置顶之类的,但是还是没有解决乱

Dong的专栏 1144
上一篇: highmem test
下一篇: 几个信号处理函数和一些信号相关的结构体
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值