如何解决 linux 的乱码问题

如何解决 linux 的乱码问题,第1张

出现这种情况的原因为两种 *** 作系统的中文压缩方式不同,在windows环境中中文压缩一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示

txt文件在linux环境下打开呈现了乱码状态。

解决方法:在linux用iconv命令,输入命令如下

iconv

-f

gbk

-t

utf8

file.pdf

>

file.pdf.utf8

此时会重生一file.utf8文件,打开之后就能正常显示中文

linux系统下修改语言配置方法有:

法一:修改/etc/profile文件,增加export

LANG=zh_CN.GB18030

法二:修改/etc/sysconfig/i18n文件,将

#LANG="en_US.UTF-8"

#SUPPORTED="en_US.UTF-8:en_US:en"

#SYSFONT="latarcyrheb-sun16"

改为

LANG="zh_CN.UTF-8"

SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"

SYSFONT="latarcyrheb-sun16"

/etc/profile:

为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.

/etc/sysconfig/i18n

这里存放的是系统的区域语言设置

LANG

表明你当前系统的语言环境变量设置

,这里是

zh_CN.GB18030

SUPPORTED

表明系统预置了那些语言支持

,不在项目中的语言不能正常显示

SYSFONT

定义控制台终端字体,你文本登录的时候显示的字体是

latarcyrheb-sun16

I18N

internationalization

的缩写形式,意即在

i

n

之间有

18

个字母,本意是指软件的“国际化”.I18N支持多种语言,不过同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;

如果在SCRT上 *** 作时中文乱码,可依次点击options--session

options--appearance,选择character

encoding为UTF-8

问题在于:我们还没有把LANG变量改成英语之前,系统得到的LANG变量是中文的,因此,它知道需要在图形界面启动过程中启用中文输入法,但把LANG变量改成英文后,系统根据LANG变量知道系统是英文的,它便不再启动中文输入法,也不再设置和导出相关的变量,导致中文输入法不可用。因此,只要在这个脚本中,“骗”过系统,让输入法脚本“以为”系统是中文的,它不就运行中文输入法,并导出相关变量了吗? 于是,通过分析脚本,我在xinput.sh中的: lang_region=$(echo $tmplang | sed -e 's/\..*//') 后面又添加了lang_region="zh_CN" 直接把lang_region=$(echo $tmplang | sed -e 's/\..*//') 修改成 lang_region="zh_CN" 也可以 多添加一行是为了以后改过来方便,直接删除添加的一行就可以了。 当然,把for循环中的/etc/X11/xinit/xinput.d/${lang_region}该成 /etc/X11/xinit/xinput.d/zh _CN也可以。 当然还有其他的改法,前提是你要懂得shell 脚本的语法,看得懂脚本的意思。这样修改后,即便系统是英文的,xinput.sh脚本也会去读取/etc/X11/xinit/xinput.d/zh _CN 文件并导出其中的内容、设置好XMODIFERS等输入法变量,并运行iiimx输入法程序。 那么为什么不在图形界面启动后直接运行iiimx输入法程序呢?实验一下就知道,这根本不行。因为输入法程序是须要和被输入的应用程序配合运行的软件,在运行过程中需要导出很多变量。直接运行iiimx只运行了主程序,而没相关变量,没办法和应用程序配合完成输入工作。 完成修改工作后,保存脚本文件。输入startx命令启动图形界面,就可以用全英文的系统界面和中文输入法了。但需要注意的是:由于系统是全英文的,默认输入法也是英文,通过GNOME或者KDE菜单起动的应用程序第一次输入中文的时候不能按ctrl+空格来切换到中文,需要用鼠标在任务栏上点击输入法图标切换,第一次切换后以后就可以用ctrl+空格快捷键来切换中英文输入法了。 四,一些后续问题 某些软件,比如Open Office,通过GNOME或者KDE菜单启动的话,即使切换到中文输入法也输不进中文,这是因为整个桌面系统的环境是英文的,软件“继承”了英文环境的相关变量,这些软件就“认死理”,就是不让输入中文,这时候可以打开一个gnome终端,把LANG变量临时设置成zh_CN.UTF-8 : [root@gucuiwen ~]# LANG="zh_CN.UTF-8" 然后在这个gnome终端中,用命令打开open office: [root@gucuiwen ~]# oowriter &这样Open Office就“继承”了gnome终端的LANG变量,起动后,工具栏和菜单等都是中文的,而且能输入中文。推而广之,任何软件都可以用这种方法,根据需要,打开中文界面的软件和英文界面的软件。要以英文界面运行软件时,只要从GNOME或者KDE菜单打开,要用中文界面运行软件时,在终端中修该LANG变量,从修改过LANG变量的终端中通过命令运行即可。当然,如果你还安装了其他语言的字体,你还可以以其他语言的界面来运行程序。如日语: [root@gucuiwen ~]# LANG="ja_JP.UTF-8" [root@gucuiwen ~]# gedit &我用上面的两条命令打开的gedit 编辑器就是全日语界面的,但是能输入中文和英文,并显示日文。从而达到,一个系统,多种语言和文字共存的目的。 当然,前提是要安装了日语字体和日语locale,否则所有有文字的地方会全部显示成一连串问号。总之,要先懂得原理,之后想怎么玩就怎么玩,随心所欲,完全不受限制,充分享受用Linux的乐趣。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8286306.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存