【转】ubuntu 编码 UTF-8 GBK GB18030

添加编码支持

sudo locale-gen zh_CN.GBK
sudo locale-gen zh_CN.GB2312
sudo locale-gen zh_CN.GB18030

2.更新一下locale:

sudo dpkg-reconfigure locales

sudo locale-gen

如果出现类似于
zh_CN.GB18030...Done

之类的对应提示说明相关内码已安装成功

////////////////////////////////////////////////////////////////////////////////////////////////////

显示中文:
$ sudo apt-get update
然后就能在System->Administration->Language Support里选择并安装中文了。
这样界面上就能显示中文了,但是这样默认的编码标准是UTF-8,而很多应用都是在windows下开发的,默认编码是gb2312,这样移植过来就会产生乱码。
改为GBK编码:
$ sudo locale-gen
编辑 /var/lib/locales/supported.d/local
添加 zh_CN.GBK GBK
编辑 /etc/environment
修改为
LANG=zh_CN.GBK
LANGUAGE="zh_CN:zh:en_US:en"
GST_ID3_TAG_RNCODING=GBK
LC_CTYLE=zh_CN.GBK
LC_ALL="zh_CN.GBK"

今天开始把工作环境全部迁移到Linux,一天下来,算平静。很庆幸当初在win下面用了Mozilla
Thunderbird邮件客户端,而不是OutLook,这简直太方便了,可以直接把上百兆的邮件存放目录复制到linux下直接用,与之形成鲜明对比
的是微软的新版live Messager,今天发现微软的这个东西甚至不支持安装在他们自己的WinXP
64/Wind2003/2008上面?我没有什么可说的呢。

Ubuntu 默认采用UTF8编码,可以方便global。但对中文支持,还不细致,即便默认采用中文安装,也并不会自动添加GB*等支持,致使在Ubuntu下访问部分Win文本文件时,出现乱码。

I. 配置系统环境
执行 sudo vi /var/lib/locales/supported.d/zh
加入以下配置参数

zh_CN.GB18030 GB18030 (最新汉字编码字符集,向下兼容GBK,GB2312)
zh_CN.GBK GBK (汉字扩展编码,向下兼容GB2312, 并包含BIG5全部汉字)
zh_CN.GB2312 GB2312 (简化汉字编码字符集, 最近有客户要我们改进GB2312,太看得起我们了,我只能说:"NO!")
zh_CN.GB18031 GB18031 (数字键盘汉字编码输入,面向手持设备,我的Nokia3120从来就是发短信,接听电话,无法和PC通讯,就不用这个了。 maybe用Google Android SDK的大侠们需要这个)
zh_HK.BIG5 BIG5 (繁体)
zh_TW.BIG5 BIG5 (繁体)

然后执行 sudo locale-gen
提示以下信息,成功了
zh_CN.GB18030... done
zh_CN.GBK... done
......

II. 系统环境支持GB*内码了,但用vi, gedit等工具访问文件还会继续乱码,需要针对不同的工具分别配置,使之自己检测支持范围内的编码
e.g. vi
执行 sudo vi /etc/vim/vimrc
加入以下配置参数
let &termencoding=&encoding
set fileencodings=utf-8,gb18030,gbk,gb2312,big5

e.g. gedit
执行 sudo gconf-editor
选择 apps/gedit-2/preferences/encodings
找到 auto_detected 编辑,在Values中分别加入 GB18030,GBK,GB2312,BIG5

OK~

感谢lec的支援。
enca工具很方便,用于检测文件内码(前提是系统环境支持,如,环境不支持BIG5,是无法检测的,这个晕了我许久)
安装 sudo apt-get install enca
用法 enca filename
这个工具是在google搜索到的(http://blog.oolec.com/?p=79),绕了地球一圈才找到,猛发现文章作者就坐在我旁边,以后再找东西先问问,别瞎跑。

使ubuntu正常显示GB2312、GBK编码文件

  • LDUUG 发布于 2010-12-17  00:27:00

1842

   

ubuntu环境设置的字符集utf8,windows默认字符集是
GBK,Ubuntu的默认字符集为utf-8,这使
得在用telnet登录远程服务器或查看windows文件时出现乱码。需要将ubuntu环境设置为GBK或GB2312,或设置软件使其正确显示汉
字。下面以GBK字符集为例进行说明:

一、修改Ubuntu默认字符集为GBK
1、首先设置sudo vi /var/lib/locales/supported.d/local
添加一行 zh_CN.GBK GBK
sudo locale-gen生成locale

2、修改ubuntu的字符集
方法一: 修改用户目录下的.profile文件,增加以下内容:
LANGUAGE=”zh_CN:zh:en_US:en”
LANG=zh_CN.GBK 
重新登录即可。
这个方法只对该用户有效。
方法二:修改/etc/environment,增加以下内容:
LANGUAGE=”zh_CN:zh:en_US:en”
LANG=zh_CN.GBK
然后重启X即可
这个方法对没有设置LANG及LANGUAGE环境变量的用户有效

二、设置软件命名其正常显示GBK
这需要软件本身支持多字符编码,最常见的是IE等浏览器,可以通过设置编码显示GBK字符集。Ubuntu下的一些软件也支持此功能,以ubuntu的终
端程序为例,使其正常显示GBK编码的方法是:在termial窗口上点击菜单:终端->设置字符编码->选择GBK即可。

##########################################

解决文件名,mp3标签,文本文件的中文乱码

从windows转移到ubuntu的用户,常常会发现自己在windows下创建/下载/保存的文件经常性出现乱码问题(kubuntu出现问题的可能性更高一些)。而使用默认播放器打开以往的音乐文件(mp3等)时,出现乱码的机会更是接近100%。

这些问题的解决方案在ubuntu使用技巧中已被收录,但是由于问题的普遍性,我认为有必要转移到这里。

转换文件名由GBK为UTF8

sudo apt-get install convmv
convmv -r -f cp936 -t utf8 –notest –nosmart *
转换文件内容由GBK到UTF8 iconv -f gbk -t utf8 $i > newfile
转换 mp3 标签编码

sudo apt-get install python-mutagen
find . -iname “*.mp3” -execdir mid3iconv -e GBK {} \;

#####################################
buntu默认的打开.txt文件用的是gedit,可gedit默认编码是UTF8,打开windows下编辑的gb2312的文档都是乱码。解决方法之一就是把gedit的编码改为GB2312,方法如下:

在Applications菜单上点右键,选择EditMenu.在MainMenu的对话框中勾选SystemTools-ConfigurationEditor,并从Applications菜单中开启。

依次开启/apps/gedit-2/preferences/encodings/双击右侧auto_detected,在弹出对话框中点选Add,添加Values值为GB2312,确定后选中,点选Up按钮将其移至第一位。

同样方法,对show_in_menu进行设置,并将GB2312置于首位。

还有一种方法是用openoffice打开.txt文件时,会让你选择编码,选GB2312就行了。

***********************************************

1.系统默认编码

我们知道在中文 Windows 下一般来说系统的默认编码是 GBK, 从 Java 开发的角度来说, 就是在进行诸如 Java
源代码编译, 文件读写等操作时, 默认使用的编码是 GBK; 而我们参照一般的 Ubuntu 中文安装文档, 可能会建议将默认的语言设置为
zh_CN.UTF-8, 这样会带来一些问题, 比如我在 Windows 使用 Eclipse 时的编辑器的默认编码是 GBK, 但是在
Ubuntu 下面就是 UTF-8, 同样是使用 Eclipse, 在 Windows 下的中文文档到了
Ubuntu 中会产生乱码, 必须手工逐个文档设置属性中的编码为 GBK 才可以正常; 一些测试代码也是以默认编码读取文件的,
这些代码读取出来的文件内容也会包含乱码.

所以, 最好是将系统的默认编码设置为 GBK, 这样和 Windows 下面的开发环境最接近. 设置的方法应该不止一种, 我采用的是编辑 /etc/environment, 改成这个样子:
LANGUAGE=”zh_CN:zh:en_US:en”
GST_ID3_TAG_ENCODING=GBK
LANG=zh_CN.GBK
LC_CTYLE=zh_CN.GBK

**********************************************
Ubuntu 中文编码设置
今天开始把工作环境全部迁移到Linux,一天下来,算平静。很庆幸当初在win下面用了Mozilla
Thunderbird邮件客户端,而不是OutLook,这简直太方便了,可以直接把上百兆的邮件存放目录复制到linux下直接用,与之形成鲜明对比
的是微软的新版live Messager,今天发现微软的这个东西甚至不支持安装在他们自己的WinXP
64/Wind2003/2008上面?我没有什么可说的呢。

Ubuntu 默认采用UTF8编码,可以方便global。但对中文支持,还不细致,即便默认采用中文安装,也并不会自动添加GB*等支持,致使在Ubuntu下访问部分Win文本文件时,出现乱码。

I. 配置系统环境
执行 sudo vi /var/lib/locales/supported.d/zh
加入以下配置参数

zh_CN.GB18030 GB18030 (最新汉字编码字符集,向下兼容GBK,GB2312)
zh_CN.GBK GBK (汉字扩展编码,向下兼容GB2312, 并包含BIG5全部汉字)
zh_CN.GB2312 GB2312 (简化汉字编码字符集, 最近有客户要我们改进GB2312,太看得起我们了,我只能说:”NO!”)
zh_CN.GB18031 GB18031 (数字键盘汉字编码输入,面向手持设备,我的Nokia3120从来就是发短信,接听电话,无法和PC通讯,就不用这个了。     maybe用Google Android SDK的大侠们需要这个)
zh_HK.BIG5 BIG5 (繁体)
zh_TW.BIG5 BIG5 (繁体)

然后执行 sudo locale-gen 
提示以下信息,成功了
zh_CN.GB18030… done
zh_CN.GBK… done
……

II. 系统环境支持GB*内码了,但用vi, gedit等工具访问文件还会继续乱码,需要针对不同的工具分别配置,使之自己检测支持范围内的编码
e.g. vi
执行 sudo vi /etc/vim/vimrc 
加入以下配置参数
let &termencoding=&encoding
set fileencodings=utf-8,gb18030,gbk,gb2312,big5

e.g. gedit
执行 sudo gconf-editor
选择 apps/gedit-2/preferences/encodings
找到 auto_detected 编辑,在Values中分别加入 GB18030,GBK,GB2312,BIG5

时间: 2024-08-10 19:18:00

【转】ubuntu 编码 UTF-8 GBK GB18030的相关文章

网络编码 GB2312、GBK与UTF-8的区别

GB2312.GBK与UTF-8的区别 这是一个异常经典的问题,有无数的新手站长每天都在百度这个问题,而我,作为一个“伪老手”站长,在明白这个这个问题的基础上,有必要详细的解答一下. 首先,我们要明白,GB2312.GBK和UTF-8都是一种字符编码,除此之外,还有好多字符编码.只是对于我们中国人的网站来说,用这三种编码 比较多.简单的说一下,为什么要用编码,在计算机内,储存文本信息用ASC II码,每一个字符对应着唯一的ASCII码.最初计算机是由美国发明的,他们也用的是键盘和上面的字母,所以

GB2312,GBK,GB18030,UTF8四种汉字编码标准有什么区别和联系

 从GB2312.GBK 到 GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符.在这些编码中,英文和中文可以统一地处理.区分中文编码的方法是高字节的最高位不为 0.按照程序员的称呼,GB2312.GBK 到 GB18030 都属于双字节字符集 (DBCS). 以下是这四种字符集的包含关系:GB2312 < GBK < GB18030 < UTF8 ---------------------------------------

【编码】UnicodeEncodeError: &#39;gbk&#39; codec can&#39;t encode character &#39;\xa0&#39; in position XXX

有时候在win中运行代码会遇到题目中的报错问题: "UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position XXX",让人摸不着头脑的是程序开头的编码设置# coding:utf-8 和数据流IO操作时的编码转化都已经在程序中加入加入了.gbk哪里来的呢?其实就是win中新文件的默认编码是gbk. 当我们遇到编码问题的时候,有三个地方需要注意的:文件的编码,IDE的编码,还有数据流IO操作过程中

常见的几种编码(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)介绍

转载:http://blog.jobbole.com/30526/ 编码一直是让新手头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚.但是编码又是那么重要,特别在网页这一块.如果你打出来的不是乱码,而网页中出现了乱码,绝大部分原因就出在了编码上了.此外除了乱码之外,还会出现一些其他问题(例如:IE6 的 CSS 加载问题)等等.我写本文的目的,就是要彻底解释清楚这个编码问题!如果你遇到了类似的问题,那就要仔细的看看

字符编码GB2312、GBK、UTF-8的区别

本文来自:javaeye网站 UTF8是国际编码,它的通用性比较好,外国人也可以浏览论坛 GBK是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大~ 提示:如果您的网站客户群体主要是面向国内用户的,建议使用GBK版本,因为它可以节省空间,及相对utf-8版本来讲稳定一些.对于DZ论坛来说,很多插件都只支持GBK的,如果需要装较多插件的论坛还是用GBK比较好,而对装较少插件且有特殊用户群的论坛用UTF8比较好. GBK版本与UTF-8版本功能是一样的.只不过编码方式不同. GBK的

汉字编码 (GB2312 GBK GB18030)

GB2312 收录简化汉字及符号.字母.日文假名等共7445个图形字符,其中汉字占6763个 每个符号都用两个字节表示,每个字节均采用七位编码表示,习惯上 第一个字节是高字节,第二个字节是低字节 GB2312的编码范围为2121H-777EH,与ASCII有重叠,通行方法是将GB码两个字节的最高位置1以示区别 GBK 由于GKB收录的汉字较少以及配合UNICODE的实施,GBK 产生了 向下兼容GB2312 双字节表示 GBK共收入21886个汉字和图形符号,包括: GB2312中的全部汉字.非

Ubuntu编码问题

[email protected]:/srv/rorapps/fgcc# rails -v Sorry, command-not-found has crashed! Please file a bug report at: https://bugs.launchpad.net/command-not-found/+filebug Please include the following information with the report: command-not-found version

Delphi 编码转换 Unicode gbk big5(使用LCMapString设置区域后,再用API转换)

原文:http://blog.dream4dev.com/article.asp?id=17 function UnicodeEncode(Str: string; CodePage: integer): WideString;var Len: integer;begin Len := Length(Str) + 1; SetLength(Result, Len); Len := MultiByteToWideChar(CodePage, 0, PChar(Str), -1, PWideChar

编码格式简介:ASCII码、ANSI、GBK、GB2312、GB18030和Unicode、UTF-8,BOM头

编码格式简介:ASCII码.ANSI.GBK.GB2312.GB18030和Unicode.UTF-8,BOM头 二进制: 只有0和1. 十进制.十六进制.八进制: 计算机其实挺笨的,它只认识0101这样的字符串(二进制),当然了我们看这样的01串时肯定会比较头晕的. 所以很多时候为了描述简单都用十进制,十六进制,八进制表示.实际上都是等价的,没啥太多不一样. 位(bit) 计算机中存储一个0,或者一个1的位置空间,叫做位. 字节(byte) 计算机中,我们把连续的8个位空间,叫做一个字节. A