解决windows文件名乱码问题

转载 2013年06月04日 15:43:43
使ubuntu正常显示GB2312、GBK编码文件 思无涯
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到UTF8iconv -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

java文件下载的文件名乱码问题的解决

在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。 对于这个问题,不同的浏览器,解决的方法不太一样。 IE的话,通过URLEncoder对filename进行UTF8编码。...
  • lian_zhihui1984
  • lian_zhihui1984
  • 2011年09月30日 09:49
  • 25509

下载附件文件名乱码问题

如果下载文件是中文名,产生乱码 原因: 不同浏览器 默认解码机制不同IE使用URL解码 、FF使用 BASE64解码 浏览器本身设计机制 先可以解决ie乱码:URLEncoder设置 respon...
  • xiaoyiaoyou
  • xiaoyiaoyou
  • 2015年12月05日 16:19
  • 1485

上传文件,经过Zuul,中文文件名乱码解决办法

转载请标明出处: http://blog.csdn.net/forezp/article/details/73017664 本文出自方志朋的博客 问题描述在项目中又一个上传文件的oss服...
  • forezp
  • forezp
  • 2017年08月14日 21:51
  • 22785

文件名不是utf-8编码的解决方法

问题:新浪云上传zip文件时报错(该文件不是utf-8编码)?原因分析:我们自己的系统windows中文操作系统一般为gb312编码格式,新浪云的linux操作系统一般为utf-8编码,这样就会造成中...
  • guiyecheng
  • guiyecheng
  • 2015年05月18日 08:12
  • 2439

[Android]解决Window系统adb shell后中文显示乱码

在Window下,进行adb shell后,举个例子,如果你的sdcard下保存着中文字符文件名的文件,则在CMD下显示是一些无规律的中文并夹杂着乱码。如下图: 出现这种情况的原因是:Android中...
  • sodino
  • sodino
  • 2010年12月06日 13:43
  • 15115

linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决

 linux中,我的LC_ALL环境是zh_CN.gbk。   当我把中文文件名文件cp到windows的fat32盘下后,重起进入windows后发现文件名全是乱码。      ...
  • sjgfmqj
  • sjgfmqj
  • 2015年08月24日 18:25
  • 953

解决windows传送到linux下中文文件名及文件内容乱码问题

利用 winSCP 将windows系统下的文件上传到linux 下,含有中文的文件名,其文件在linux下会显示乱码 ,可以在winscp 环境中设置。 linux下经常遇到的...
  • AriesSurfer
  • AriesSurfer
  • 2012年11月09日 22:08
  • 24253

linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决

 linux中,我的LC_ALL环境是zh_CN.gbk。   当我把中文文件名文件cp到windows的fat32盘下后,重起进入windows后发现文件名全是乱码。      ...
  • sjgfmqj
  • sjgfmqj
  • 2015年08月24日 18:25
  • 953

java 下载文件名乱码解决方案+上传时 文件名乱码

response.setHeader(...)下载中文文件名乱码问题 关于中文文件下载的问题,网上的咨询和答疑已经很多,我原来处理下载的代码如下: Java代码   resp...
  • kunkun378263
  • kunkun378263
  • 2014年12月25日 14:36
  • 1147

解决Ubuntu中使用windows文件名乱码问题

使ubuntu正常显示GB2312、GBK编码文件 思无涯 ubuntu环境设置的字符集utf8,windows默认字符集是GBK,Ubuntu的默认字符集为utf-8,这使 得在用telnet登录...
  • wy0110
  • wy0110
  • 2014年03月07日 14:31
  • 2829
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决windows文件名乱码问题
举报原因:
原因补充:

(最多只允许输入30个字)