专栏首页Aloys的开发之路Linux乱码问题解决方案

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 中文字幕乱码解决方法

  1. 打开选项-》首选现:选择字幕选项卡。
  2. 找到“默认字符编码”选项,在下拉框中选择“简体中文(cp936)”
  3. 再打开“字体”页卡(上边),选择“系统字体”在下拉选框中选择一种简体中文字体,如 Weu Quanyi Zen Hei 等。

VLC播放器显示文件名乱码

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 能让程序做的事情坚决不用人来做——批量修复markdownlint MD034警告

    欢迎和大家交流技术相关问题: 现在各种编程语言都有自己的lint工具来做静态检查,防止一些低级错误并维持统一的风格。Markdown这样的样式标记语言也不例外,...

    用户1221057
  • C++编译错误cannot have cv-qualifier

    C++编译错误cannot have cv-qualifier 在C++中CV指const和volatile两个关键字。有两种情况不能使用CV限定。 一、非成...

    用户1221057
  • 判断一个数是不是2的幂

    我们经常会遇到这样一个问题,就是判断某个数据是否为2的n次方(1,2,4,8,16...)。例如如果用户输入的不是2^n,则要求用户重新输入。为了说明这种判断算...

    用户1221057
  • 利用Windows性能计数器(PerformanceCounter)监控

    一、概述 性能监视,是Windows NT提供的一种系统功能。Windows NT一直以来总是集成了性能监视工具,它提供有关操作系统当前运行状况的信息,针对各种...

    张善友
  • 最有价值的50道java面试题(一)

    来自骆昊的技术专栏 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,...

    java达人
  • 如何在 Java8 中风骚走位避开空指针异常

    要说 Java 编程中哪个异常是你印象最深刻的,那 NullPointerException 空指针可以说是臭名昭著的。不要说初级程序员会碰到,即使是中级,专家...

    JAVA葵花宝典
  • 如何在 Java8 中风骚走位避开空指针异常

    要说 Java 编程中哪个异常是你印象最深刻的,那 NullPointerException 空指针可以说是臭名昭著的。不要说初级程序员会碰到,即使是中级,专家...

    Java技术江湖
  • 2019年Java面试题基础系列228道(2),查漏补缺!

    https://cloud.tencent.com/developer/article/1549815

    程序员追风
  • Go net/rpc 包的深度解读和学习

    远程过程调用 (Remote Procedure Call,RPC) 是一种计算机通信协议。允许运行在一台计算机的程序调用另一个地址空间的子程序(一般是开放网络...

    aoho求索
  • POJ A Knight's Journey

    题意:给你一定的格子的棋盘,一匹马是否可以遍历完全整个棋盘 1 #include<stdio.h> 2 #include<string.h> 3 cons...

    用户1624346

扫码关注云+社区

领取腾讯云代金券