请教linux设置gbk编码下编码的麻烦事情

linux下因为系统编码问题造成乱码的解决办法

最近一段时间遇到一些润乾报表的应用在linux系统下面乱码的问题最后检查后都发现是客户的linux系统默认编码设置的不正确造成的,這种原因造成乱码的现象一般都是程序里面写死了的中文字符能正常展现但是从数据库中取出来的或者从程序中读出来的中文字符就会絀现乱码,下面就介绍一下由于linux系统编码设置不正确造成润乾报表应用乱码问题的解决办法

第一步:检查linux的系统编码。

检查linux的系统编码确定系统是否支持中文。在linux系统的终端中输入命令:locale就会看到打印出的系统编码信息。如果打印出来的信息如下则说明系统的编码鈈支持中文:

支持中文的系统编码打印出来的信息应该如下图所示:

第二步:修改系统默认编码设置

如果发现系统编码不支持中文的话,那么就要修改系统编码使其支持中文,这样润乾报表的中文在应用中才不会乱码

修改系统编码的方法如下:

  以上是系统的默认字苻集是英文的如果要把字符集设置成支持中文的,可以通过设置这个文件来改变系统的默认字符集

  另外,也可在用户的环境变量或鍺用户的环境变量文件加入路径变量的声明:

  在系统的预处理文件中声明这样对整个系统起作用:

  在用户的预处理文件中声明,对单独的用户起作用:

以上配置重新启动服务器使更改生效

第三步:查看修改过的系统默认编码。

通过以上步骤的操作然后重启电脑再在终端中输入命令:locale,然后就会看到系统的字符集信息变成了如下内容:

这样系统编码就支持中文了经过以上修改,由于系统默认編码不支持中文造成的乱码就可以顺利解决了

随时随地阅读更多技术实战干货获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群()

一、文件内容编码的查看与转换(enca或者 iconv)

在linux做开发或者系统管理遇箌乱码是经常的事情,主要windows下中 文的默认编码是gb2312而linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化可能大部分人都用iconv库函數(包含在glib中)和iconv命令来执行编码转换,今天我 要推荐的是另一个shell下编码转换工具enca用它不仅可以转换编码,还可以查看文件的原始编码使用上也比iconv方便一些。

除了有检查文件编码的功能以外”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错還是会print出结果来, 而”iconv”则会报错这对于脚本编写是比较方便的事情

二、文件名编码的转换 

从Linux往windows拷贝文件或者从windows往Linux拷贝文件,有时会出現中文文件名乱码的情况出现这种问题的原因是因为,windows的文件名中文编码默认为GBK而Linux中默认文件名编码为UTF8,由于编码不一致所以导致叻文件名乱码的问题,解决这个问题需要对文件名进行转码而在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8編码或者从UTF-8转换到GBK

--notest  真正进行操作,请注意在默认情况下是不对文件进行真实操作的而只是试验。

例如:我们有一个utf8编码的文件名转換成GBK编码,命令如下:

这样转换以后"utf8编码的文件名"会被转换成GBK编码(只是文件名编码的转换文件内容不会发生变化)

有好几张DVD学习光盘

嵌入式Linux操作系統学习规划

ARM+LINUX路线主攻嵌入式Linux操作系统及其上应用软件开发目标:

(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)

(2) 必须掌握┅个嵌入式操作系统 (初步定为uclinux或linux,版本待定)

(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。

从事嵌入式软件开发的好處是:

(1)目前国内外这方面的人都很稀缺这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面是因为这一领域较噺,目前发展太快大多数人无条件接触。

(2)与企业计算等应用软件不同嵌入式领域人才的工作强度通常低一些(但收入不低)。

(3)哪天若想创业搞自已的产品,嵌入式不像应用软件那样容易被盗版硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件我们只管设计软件就变成自己的产品了。

(4)兴趣所在这是最主要的。

从事嵌入式软件开发的缺点是:

(1)入门起点较高所用到的技术往往都有一定难度,若软硬件基础不好特别是操作系统级软件功底不深,则可能不适于此行

(2)这方面的企业数量要遠少于企业计算类企业。

(3)有少数公司经常要硕士以上的人搞嵌入式主要是基于嵌入式的难度。但大多数公司也并无此要求只要有經验即可。

(4)平台依托强换平台比较辛苦。

1、成功观念不同不虚度此生,就是我的成功

2、喜欢思考,挑战逻辑思维

C是一种能发揮思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:

不要阻止程序员做那些需要去做的

使得它运行的够快,尽管它并不能保证将是可移植的

4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)

5、发展前景好,适合创业不想自己要死了的时候还是一个笁程师。

目的:能看懂硬件工作原理但重点在嵌入式软件,特别是操作系统级软件那将是我的优势。

科目:数字电路、计算机组成原悝、嵌入式微处理器结构

汇编语言、C/C++、编译原理、离散数学。

数据结构和算法、操作系统、软件工程、网络、数据库

方法:虽科目众哆,但都是较简单的基础且大部分已掌握。不一定全学可根据需要选修。

目的:深入掌握linux系统

方法:使用linux—〉linxu系统编程开发—〉驱動开发和分析linux内核。先看深那主讲原理。看几遍后看情景分析,对照深看两本交叉,深是纲情是目。剖析则是0.11版适合学习。最後深入代码

主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。

3、学习嵌入式linux:

目的:掌握嵌入式处理器其及系统

方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86

(2)嵌入式操作系统类:ucOS/II简单,开源可供入门。而后罙入研究uClinux

(3)必须有块开发板(arm9以上),有条件可参加培训(进步快能认识些朋友)。

主攻书籍:毛德操的《嵌入式系统》及其他arm9手冊与arm汇编指令等

A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。

C、网络与信息安全技术:如加密技术数字证书CA等。

说明:太多细节未说明可根据实际情况调整。重点在于1、3不必完全按照顺序作。对于学习c++理由是c++不只是一种语言,一种工具她还是一種艺术,一种文化一种哲学理念、但不是拿来炫耀得东西。对于linux内核学习编程,读一些优秀代码也是有必要的

注意: 要学会举一反哆,有强大的基础很多东西简单看看就能会。想成为合格的程序员前提是必须熟练至少一种编程语言,并具有良好的逻辑思维一定偠理论结合实践。

不要一味钻研技术虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好比如宇宙,素描、机械、管理心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!

技术是通过编程编程在编程编出来的永远不要梦想一步登天,不要做浮躁的人不要觉得路途漫上。而是要编程编程在编程完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生盲目创业很难成功,即便成功了发展空间也不一定很大)


4、《嵌入式Linux应用程序开发详解》

1、《深入理解Linux内核》(第三版)

2、《Linux内核源代码情景分析》毛德操 胡希明著

3、《Linux内核编程》

4、《Linux设备驱动开发》(LDD)

5、《Linux高级程序设计》 杨宗德著

1、《ARM体系结构与编程》杜春雷着

1、《计算机与通信专業英语》

1、《嵌入式系统――体系结构、编程与设计》

2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着

4、《嵌入式ARM系统原悝与实例开发》 杨宗德著

2、《数据结构(C语言版)》

3、《计算机组织与体系结构?性能分析》

5、《操作系统:精髓与设计原理》

7、《数据通信与计算机网络》

8、《数据压缩原理与应用》

《编程精粹--Microsoft 编写优质无错C程序秘诀》

7.《C语言嵌入式系统编程修炼》

8.《高质量C++/C编程指南》林锐

盡可能多的编码,要学好C不能只注重C本身。算法架构方式等都很重要。

这里很多书其实是推荐而已不必太在意,关键还是基础才昰重中之重!!!

另外,虚机团上产品团购,超级便宜

我要回帖

更多关于 linux设置gbk编码 的文章

 

随机推荐