linux make乱码,linux乱码

当在Windows下编辑的HTML文件通过FTP上传到Linux服务器后可能出现404错误或乱码,原因是URI编码不一致。解决方法包括文件和目录名转码、文件内容转码以及调整系统环境编码。例如,可以使用convmv进行文件名转码,iconv进行文件内容转码,并调整Linux系统环境的字符集设置以避免编码冲突。
摘要由CSDN通过智能技术生成

有时候我们把windows下编辑好的html文件通过FTP等方式传到服务器上会发现路径明明正确,通过web访问却提示404,又或者能访问到但是看到的是乱码,原因:浏览器默认情况下,URI的编码是以UTF-8的方式编码后服务器发送的,因此在URI 中出现中文同样会以UTF-8的方式编码后发送到服务器,如系统的字符集、文件名的字符集和URI的字符集不一到处就会出现解码问题。这种方式可以通过多种方式解决:文件转码、文件名转码、系统环境、浏览器编码设置、HTTP程序设置等,这里只简单说下转码的方法。

1、文件和目录名转码

安装convmv

tar -zxvf ...

cd ...

make && make install

安装成功后会出现一个convmv命令

把windows下的文件传到linux中显示乱码

转码:GB2312 => UTF-8

convmv -r -f GB2312 -t UTF-8 --notest ./*

注:-r递归,具体使用方法使用convmv --help查询

2、文件内容转码

安装enca

tar -jxvf ...

cd ...

./configure && make && make install

#开始转码前先查看一下文件编码

[root@localhost 我的电脑]# enca `ls`

二.txt: Simplified Chinese National Standard; GB2312

我的文件.txt: Simplified Chinese National Standard; GB2312

#转码(注必须使用以下重定向方式使用)

[root@localhost 我的电脑]# iconv --from-code=GB2312 --to-code=UTF-8 二.txt > 二二.txt

#查看转码后的各文件编码

[root@localhost 我的电脑]# enca `ls`

二.txt: Simplified Chinese National Standard; GB2312

二二.txt: Universal transformation format 8 bits; UTF-8

我的文件.txt: Simplified Chinese National Standard; GB2312

#此时可以正常查看转码后生成文件的内容,原文件编码没有改变,仍无法查看

[root@localhost 我的电脑]# cat 二二.txt

真二[root@localhost 我的电脑]# cat 二.txt

t[root@localhost 我的电脑]#

3、系统环境编码

1、redhat下/etc/sysconfig/i18里面设置的语言环境调用的文件在/usr/share/i18n/locales下

2、locale -a可以查看所有能使用的环境编码

3、LC_ALL和LANG和LC_*的优先级为LC_ALL>LC_*>LANG,

另外在其它一项没有设置的情况下,还有默认值的问题。例:LANG设置为zh_CN.UTF-8,如果LC_XX没有设置,则会使用LANG的设置

LC_ALL设置后,其它设置都失效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值