linux 文件名、文件内容 乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 文件名、文件内容 乱码相关的知识,希望对你有一定的参考价值。

在windows 中,文件内容编码 是 utf-8 无bom,上传到centos中,
文件名显示乱码,vi 文件内容也是乱码

linux的编码是
LANG=zh_CN.GB18030
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN

网上大多说window是gbk编码,可以我的文件是utf8编码了呀,迷惑ing
请问如何解决乱码
执行locale,显示如下
# locale
LANG=en_US.UTF-8:zh_CN.gbk:zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

Linux文件名、文件内容乱码,主要原因是windows上的中文编码默认是GBK,而Linux默认中文编码为UTF-8,由于编码不一致,所以导致乱码问题。

为了解决这个乱码,需要对文件进行转码,具体如下:

1、前提保证已安装了convmv;
2、具体convmv的用法:
Convmv –f 源编码 –t 新编码 [选项] 文件名
一般常用参数:
-r 递归处理子目录
--notest 真正进行操作,默认情况下是不对文件进行真实操作的,只是一个预览
--list 显示所有支持的编码
--unescap 可以做一个转义
3、比如我们有一个utf8的文件名,要求转换成gbk编码,命令如下:
Convmv –f utf-8 –t gbk –notest 文件名

也可以使用linux下最好用的编码转换工具iconv来进行转码操作。

例子:将GBK编码的文件转换成UTF-8
iconv -f GBK -t UTF-8 gbkfile.txt > utf8file.txt

批量转换方法:
1. 生成相应的目录结构:
find origin -type d -exec mkdir out \\;
根据origin下的目录结构,生成相应的目录结构到outorigin下;
2. 转换匹配的文件编码:
find origin -type f -name \'*.java\' -exec iconv -f GBK -t UTF-8 -o out \\;
将origin目录下后缀为java的文件编码从GBK转换成UTF-8,并保存在outorigin目录下。注意,先确定源文件的编码格式,选择相应的编码(这里是GBK的),否则转换出来的还是乱码。
3. 还可以继续转换其它匹配的文件:
如:转换html文件
find origin -type f -name \'*.html\' -exec iconv -f GBK -t UTF-8 -o out \\;
参考技术A linux下转换字符编码的工具 iconv
使用举例 iconv -f GBK -t UTF-8 GBK.txt -o UTF.txt本回答被提问者采纳
参考技术B 加上utf bom追问

在哪加?

参考技术C vi好像不识别中文字符,请使用vim

上传文件到linux乱码问题

由于linux系统编码一般设置为utf-8,而中文windows下通常默认编码是gbk,因此经常需要将文件名或文件内容编码进行转换,文件名编码转换软件:convmv

yum install convmv     (使用此命令安装)

convmv -f gbk -t utf-8 -r --notest filename(使用此命令查看,乱码已调整)

 

uname -a :显示系统名、节点名称、操作系统的发行版号、操作系统版本、运行系统的机器 ID 号

echo $LANG 查看服务器字符集

Vi编辑器

新增一行        小写o

保存退出        :wq

不保存退出     :q!

保存文件        :w

删除一行        dd

单行复制        yy

多行复制        nyy

粘贴               p

 

以上是关于linux 文件名、文件内容 乱码的主要内容,如果未能解决你的问题,请参考以下文章

解决Windows中的文件上传到Linux中出现乱码问题

docx4j linux上文件内容乱码问题

ecshop安装在linux下后台下载商品批量上传模板,生成出的csv文件内容都是乱码,如何修改?

关于java web 项目中文日志以及文件中文内容乱码解决

Linux中文显示乱码问题解决方法(编码查看及转换)

上传文件到linux乱码问题