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
为了解决这个乱码,需要对文件进行转码,具体如下:
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 文件名、文件内容 乱码的主要内容,如果未能解决你的问题,请参考以下文章