Linux下乱码问题的解决方案小结

linux系统中文件名内容为urf8编码, windows系统中文件名默认为gbk编码, 多数文档使用gbk编码,系统采用utf8编码

无中文输入法导致的乱码

1、ibus输入法

Ubuntu 系统安装后已经自带了ibus输入法,在英语环境下默认不启动。配置ibus自动启动可以在ubuntu系统菜单上选择System --- Preferences --- Startup Applications,在该窗口中增加一个程序:

Name: ibus-daemon
Command: ibus-daemon -d -x -r

ibus默认提供的中文输入法比较弱智,需要额外安装ibus-pinyin,命令如下:

sudo apt-get install ibus-pinyin

这时,还需要将ibus-pinyin输入法启动。在ubuntu系统菜单上选择System --- Preferences --- IBus Preferences,在Input Method页中的“Select an input method”下拉框中选择增加Chinese – Pinyin,就是图标中有个一个大大的“拼”字的那一个,然后点击Add按钮,最后通过Up按钮将该输入法移动到最上面。系统重启后,通过Ctrl + 空格即可调出ibus输入法。ibus输入法总体来说不错,但是在我的环境下发现无法在部分Java程序中调出来,例如Netbeans、OpenProj。

2、fcitx输入法

由于ibus的缺陷,所以我尝试了fcitx,使用下来也非常不错,而且可以在Java程序中正常使用,只是在这种情况下光标跟随有些问题,输入界面会停 留在屏幕最下端,但是可以接受,比起ibus不能使用要好多了。

安装fcitx:

sudo apt-get install fcitx

启动fcitx:

im-switch -s fcitx

注销后重新登录,fcitx就会生效。如果需要切换回ibus,可以运行im-switch -s ibus,然后注销,重新登录。fcitx同样可以通过Ctrl + 空格调出,这时会发现fcitx显示的中文是方框,因此需要修改fcitx的配置。Fcitx的配置文件在~/.fcitx/config,该文件为 GBK编码,在Ubuntu下显示不正常,可以通过如下方式操作:

cd ~/.fcitx
iconv -f gbk -t utf8 config > config.tmp

编辑config.tmp文件:

显示字体(中)=WenQuanYi Micro Hei

显示字体大小=10

使用粗体=0

保存退出,然后运行命令:

iconv -f utf8 -t gbk config.tmp > config

注销后重新登录,fcitx显示正常。

对于搜狗输入候选字乱码问题,先运行

sudo apt-get install fcitx-module-kimpanel

然后注销或者重启,一般就可以了

utf8 和 UTF-8 有什么区别

“UTF-8”是标准写法,在windows下边英文不区分大小写,所以也可以写成“utf-8”。“UTF-8”也可以把中间的“-”省略,写成“UTF8”。一般程序都能识别,但也有例外(如下文),为了严格一点,最好用标准的大写“UTF-8”。只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”。

网页上Flash中的中文显示为方框的解决办法

编辑/etc/fonts/conf.d/49-sansserif.conf文件,作如下修改:

<edit name="family" mode="append_last">
<string>WenQuanYi Micro Hei</string>
</edit>

Java程序部分中文显示为方框的解决办法

在$JAVA_HOME/jre /lib/fonts目录下建立fallback目录,将中文字体文件复制(或link)到fallback目录。

sudo mkdir $JAVA_HOME/jre/lib/fonts/fallback
sudo ln /usr/share/fonts/truetype/wqy/wqy-microhei.ttc $JAVA_HOME/jre/lib/fonts/fallback/

“GBK乱码”,参考

乱码的样子类似:

à??ü òá??à3?£???1,°2à??ü òá??à3?£???1

解决方法:

convmv -r -f utf8 -t iso88591 --notest --nosmart * && convmv -r -f gbk -t utf8 --notest --nosmart * # 把乱码文件名文件复制在一个空目录里运行(这样错了也不怕):

“ascii乱码”参考

乱码的样子类似:

%E5%8C%BB%E4%BF%9D

解决方法:

1.使用uni2ascii 代码:echo 乱码原文 | ascii2uni -a J

2.安装nautilus-filename-repairer0.06(官方有源码,但是依赖问题,我还没安装成功,而0.05版与现在的nautilus有点小小的合作障碍,只能看不能改名)

3.用chromeplus-1.3.3.1下载(因为这类乱码主要在用ff(默认utf8)下载qq群里的文件之后产生,用chromeplus(默认GBK)下就没问题了)

另外,至于文件里面内容的乱码问题可以搜索enca.

解决Rhythmox乱码问题:

安装Rhythmox:sudo apt-get install rhythmbox

安装mid3iconv:sudo apt-get install python-mutagen

mid3iconv -h

Clementine乱码问题

安装mid3iconv:sudo apt-get install python-mutagen

mid3iconv -h

Clementine不支持utf8,需要吧所有的mp3歌曲转换为gbk格式,wma好像不用转就可以

mid3iconv -e gbk *.mp3(由于不能带-r参数,所以要依次进入每个文件夹)

另外clementine采用gstreamer作为后端,需要安装gstreamer插件:

如果想支持mp3,需要安装gstreamer-0.10-plugins-bad和gstreamer-0.10-plugins-ugly

如果想支持wma,需要安装gstreamer-0.10-ffmpeg

如果想支持mms流媒体,需要安装gstreamer plugins for mms

另外Clementine基于Amarok,所以支持Amarok的插件一般都支持Clementine,比如osdlyrics。

转换文件内容编码:

file -i <file name> 检测文件编码
iconv --help

转换文件名编码

sudo apt-get install convmv
convmv --help
convmv -f gbk -t utf8 -r --notest files
convmv -r -f utf8 -t iso88591 * --notest --nosmart && convmv -r -f gbk -t utf8 * --notest --nosmart

解决gedit乱码问题:

gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT', 'UTF-16']"
gsettings set org.gnome.gedit.preferences.encodings shown-in-menu "['GB18030', 'GB2312', 'GBK', 'UTF-8', 'BIG5', 'CURRENT', 'UTF-16']"

解决PDF中文乱码:

sudo apt-get install poppler-data

解决rar文件乱码

使用rar

解压zip文件乱码

最近碰到这个问题,网上搜了一圈,都是什么unzip -O,一点用都没有,这些哥们估计是直接复制,用都没用过。后来找了个终极方法,用python的脚本来解压,试了下,还真管用!!!以下为python脚本的代码,新建文件jieya.py,写入以下代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import zipfile
print "Processing File " + sys.argv[1]
file=zipfile.ZipFile(sys.argv[1],"r");
for name in file.namelist():
utf8name=name.decode('gbk')
print "Extracting " + utf8name
pathname = os.path.dirname(utf8name)
if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name)
if not os.path.exists(utf8name):
fo = open(utf8name, "w")
fo.write(data)
fo.close
file.close()

然后zip文件跟jieya.py放在同一级目录,运行命令python jieya.py file.zip,哦了!

smplayer 中文字幕乱码解决方法

打开选项-》首选现:选择字幕选项卡。

找到“默认字符编码”选项,在下拉框中选择“简体中文(cp936)”

再打开“字体”页卡(上边),选择“系统字体”在下拉选框中选择一种简体中文字体,如 Weu Quanyi Zen Hei 等。

VLC播放器显示文件名乱码

初选项中修改一种支持中文的字体

以上所述是小编给大家介绍的Linux下乱码问题的解决方案小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 解决linux的redhat版上mysql字符乱码的问题

    linux上安装了mysql服务,默认的字符编码不是utf8,所以会出现中文乱码. 解决方案如下: 1.修改文件/etc/my.cnf,在mysqld配置的最后一行加上character-set-server=utf8 vi /etc/my.cnf 2.重启mysqld服务 service mysqld restart 3.字符中文乱码解决好了 以上这篇解决linux的redhat版上mysql字符乱码的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Linux下进行MYSQL编程时插入中文乱码的解决方案

    插入中文是乱码,尝试了许多方法,比如我先把vim里设置为:set fileencoding=utf-8不起作用,后来想想也对,和vim没什么关系 然后就尝试c#代码,用Encoding.UTF8.GetString()方法,后来也不对. 我就郁闷了,忽然想起来莫不是mysql的设置问题??? 于是,sudo nano /etc/mysql/my.cnf 插入下面红色代码,default-character-set = utf8,成功,不乱码了~~~根本不用什么Encoding..... # Th

  • mysql字符集乱码问题解决方法介绍

    character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. character-set-table:数据库表字符集. 优先级依次增加.所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集. character-set-client:客户端的字符集.客户端默认字符集.

  • Linux下乱码问题的解决方案小结

    linux系统中文件名内容为urf8编码, windows系统中文件名默认为gbk编码, 多数文档使用gbk编码,系统采用utf8编码 无中文输入法导致的乱码 1.ibus输入法 Ubuntu 系统安装后已经自带了ibus输入法,在英语环境下默认不启动.配置ibus自动启动可以在ubuntu系统菜单上选择System --- Preferences --- Startup Applications,在该窗口中增加一个程序: Name: ibus-daemon Command: ibus-daem

  • Linux下环境变量配置方法小结(.bash_profile和.bashrc的区别)

    在linux系统下,如果下载并安装了应用程序,在启动时很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行文件 来进行操作就太繁琐了,这种情况下就涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分. 环境变量配置的两个方法: 1)修改/etc/profile文件 推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,缺点是可能会给系统带来安全性问题. 这里是针对所有

  • linux下改变键盘映射解决方案

    linux xmodmap修改键盘映射Caps_Lock和Super_L互换 换awesome窗口管理器去了.由于ubuntu的unity还是不太稳定.偶尔卡住半天,受不了果断会曾经的awesome.话说用Win/Super的时候太多了.琢磨了半天还是不太习惯,想着还是把Caps lock和super给换一下. 用~$ xev |grep keycode 按要互换的两个键的到以下信息: 1 state 0×50, keycode 133 (keysym 0xffeb, Super_L), sam

  • linux下动态网站维护基本命令小结

    1.概述 状态查看及监控.故障处理.系统容量扩展.数据备份/恢复/站点迁移 2.状态查看与监控 (1).系统资源耗用 复制代码 代码如下: 系统负载和磁盘I/O 进程的总数,其中httpd进程数统计 TCP连接数,TIME_WAIT 等 (2).服务运行情况 用户能否访问 复制代码 代码如下: tail -f 查看apache访问日志与错误日志 查看系统日志/var/log/messages 查看服务器与Mysql数据库的连接情况 3.故障处理 (1).PHP类动态网站 服务不能启动.运行中不响

  • linux下mysql乱码问题的解决方案

    项目进行到和服务器交互,通过post访问服务器端jsp,jsp访问服务器端mysql数据库,最终返回到客户端的中文出现乱码问题. 在整个流程中,出现错误的原因可能是三个:post未设置编码或者编码不相符合,jdbc出现问题,linux下mysql初始码制问题. 在经过繁琐的排查后,最终确定问题为mysql编码问题.下文介绍如何解决linux下mysql中文乱码问题. 首先进入mysql命令行模式,键入mysql -uroot -p 即可进入.随后键入 SHOW VARIABLES LIKE 'c

  • 解决linux下zip文件解压乱码问题

    原因 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8. 解决方案一 使用7z解压. 安装p7zip和convmv # fedora $ su -c 'yum install p7zip convmv' # ubuntu $ sudo apt-get install p7zip convmv 执行一下命令解压缩 # 使用7z解压缩 $ LANG=C 7

  • 解决linux下openoffice word文件转PDF中文乱码的问题

    网上很多介绍是由于jdk中的没有字体导致乱码,而我遇到的是转换过程并未报错,但转换后的PDF中是乱码,尝试在jre/lib/fonts/中增加字体,还是不能解决问题,因此可以判断非jre字体问题,是linux系统字体问题. 用vim /etc/fonts/fonts.conf,可以看到系统字体文件在/usr/share/fonts,将windows系统字体文件连接到此目录下 ln -s /usr/local/fonts fonts 然后更新缓存:fc-cache 重启openoffice: /o

  • linux下因为系统编码问题造成乱码的快速解决方法

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

  • 解决linux下vim中文乱码的方法

    Vim编码的详细介绍 Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2.UTF-8 等流行的 Unicode 编码方式. Vim 有四个跟字符编码方式有关的选项,encoding.fileencoding.fileencodings.termencoding (这些选项可能的取值请参考 Vim 在线帮助  :help encoding-names),它们的意义如下: 1.encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buf

  • Linux下C语言的几道经典面试题小结(分享)

    本篇文章整理了几道Linux下C语言的经典面试题,相信对大家更好的理解Linux下的C语言会有很大的帮助,欢迎大家探讨指正. 1.如果在Linux下使用GCC编译器执行下列程序,输出结果是什么? 答案如下: 2.C语言程序不使用任何条件运算符,打印出十次"Hello"? 答案如下: 或是: 3.如果在Linux下使用GCC编译器执行下列程序,输出结果是什么? 答案如下: 4.如果在Linux下使用GCC编译器执行下列程序,输出结果是什么? 答案如下: 5.如果在Linux下使用GCC编

随机推荐