A. linux编码问题:1.xshell终端软件上的编码和服务器LANG命令设置的编码有什么区别2.vi和less其中一种乱码
只能说一下个人保持不乱码的经验,一要保持xshell的字符集和服务器控制台的系统语言字符集一致,二vi的vimrc设置里的语言要加入utf8,gbk等常用字符集,三在控制台cat less这些直接打印文件内容的,文件字符集要和控制台字符集一致,这样就没有乱码了
B. linux与xp系统编码问题,求设置方法
应该不是编码的问题 虽然你的系统默认是utf-8但是linux是支持gbk编码的 你上传的时候用binary方式上传看看?
C. linux python运行报编码错误
一次重启服务器后,supervisor接管的python脚本中的函数 open() 和 print() 都会报下面的编码错误:
UnicodeEncodeError: 'ascii' codec can't encode
使用的是python3,按理说编码都会默认utf-8,而且本地运行的python脚本并没有这个问题。
经大佬指点,增加环境变量 export LC_ALL="en_US.UTF-8" 后,再重启supervisor,问题解决
下面是复制的: https://www.cnblogs.com/badboy200800/p/11215981.html
Locale是一个软件在运行时的语言环境,。是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的。它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。
一个locale的书写格式为: 语言[ 地域[.字符集]]。完全的locale表达方式是 [语言[ 地域][.字符集] [@修正值]。例如:
zh_CN.GB2312 => 中文_中华人民共和国+国标2312字符集。
(1)locale把按照所涉及到的文化传统的各个方面分成12个大类
(2)查看标准字符集列表
常用字符集:en_US.utf8、zh_CN.gb2312、zh_CN.gbk、zh_CN.utf8等
3.Locale的设定
LC_ALL和LANG优先级的关系:LC_ALL > LC_* >LANG
(1)如果需要一个纯中文的系统的话,设定LC_ALL= zh_CN.XXXX即可。或者设定LANG=zh_CN.XXXX也可以,但是LC_ 不要有任何特殊设定才可以(因为LC_ 优先级高)。
(2)如果需要个性化的环境,例如只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定LANG=en_US.XXXX,然后 LC_CTYPE=zh_CN.XXXX就可以了。
(3)假如什么也不做的话,也就是LC_ALL,LANG和LC_*均不指定特定值的话,系统将采用POSIX作为lcoale,也就是C locale。
4.查看与设定字符集实践
(1)查看当前系统字符集三种方式(LC_ALL、LC_CTYPE和LANG),以查看LANG为例:
(2)更改系统字符集
备注:直接执行上述命令,可以临时修改系统字符集。如果写入环境变量可以永久改变字符集。
(3)取消当前系统字符集(设定为空)
备注:直接执行上述命令,可以临时修改系统字符集。如果写入环境变量可以永久改变字符集。
D. linux中文文件名乱码怎么解决
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
E. linux服务器编码格式与程序不匹配
刚刚遇到了在Windows上编写的java程序在Linux上运行时的编码问题。在Windows上用Notepad 或者Eclipse写的java程序,如果其中有中文字符,在Linux下javac是无法编译成功的。
Windows的编码集是GBK编码,而Linux的则是UTF-8,所以需要使用工具将java源程序的编码给改变。
可以使用iconv这个工具
命令格式为
iconv -f GBK -t UTF-8 file1 -o file2
登录后复制
file1是GBK编码的,file2是UTF-8编码的。
如果不想保留原来的文件可以将file2的文件名写为和file1一样。
然后就可以javac成功编译了。
F. linux系统,文件是utf-8格式的为什么会乱码呢
乱码的问题有很多可能,第一、linux安装时是否支持中文;第二、要用命令查一下格式:echo $LANG;第三确认格式是否需要在系统中修改格式类型;第四连接终端(putty,secureCRT)等工具的编码是否和系统的编码一致,不致要改为一致就可以了。
G. 文件在linux显示乱码怎么解决
linux下经常遇到的编码问题如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。
查看编码的方法
方法一:file filename
方法二:在Vim中可以直接查看文件编码
:set fileencoding
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开
文件编码转换
多方法:
iconv 提供标准的程序和API来进行编码转换;
convert_encoding.py 基于Python的文本文件转换工具;
decodeh.py 提供算法和模块来谈测字符的编码;
linux下文件编码转换:
方法一:
在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
或者
11)设置文件集合,即要对哪些文件进行操作,可以使用通配符,比如我通常是对 C/C++ 源程序进行编码转换
:args *.h *.cpp
2)给出要在每个文件上执行的命令,这里是转换编码:
:argdo set fenc=utf-8 | update
方法二:
iconv 转换
5.案例:
假如说我们将windows下的一个UTF-8的文件传到linux环境下,linux环境下的系统编码是GB18030,我们cat的时候就会出现乱码,这个时候就应该想到转码了,下面我们来进行试验:
我们将windows下一个名为UTF-8.sh的文件传到linux系统中,其中UTF-8.sh的内容如下:
我是中文编码UTF-8模式~
而linux系统的系统语言设置为:
[root@sor-sys zy]# cat /etc/sysconfig/i18n
LANG=zh_CN.GB18030
SYSFONT="latarcyrheb-sun16"
这个时候查看一下文件的内容及编码:
[root@sor-sys zy]# file UTF-8.sh
UTF-8.sh: UTF-8 Unicode text, with no line terminators
[root@sor-sys zy]# cat UTF-8.sh
锘挎垜鏄?腑鏂囩紪镰乁TF-8妯″纺~[root@sor-sys zy]#
[root@sor-sys zy]#
这个时候我们就需要转换编码了,记得使用iconv
[root@sor-sys zy]# iconv -f UTF-8 -t GB18030 UTF-8.sh -o GB18030.sh
[root@sor-sys zy]# cat GB18030.sh
??我是中文编码UTF-8模式~[root@sor-sys zy]#
[root@sor-sys zy]# file GB18030.sh
GB18030.sh: Non-ISO extended-ASCII text, with no line terminators
[root@sor-sys zy]#
convmv就是更改文件名编码方式的一个工具。
比如
sudo convmv -f gbk -t utf-8 -r –notest /home
就是将/home目录下原来文件名是gbk编码方式的全部改为utf-8格式的。这里 -f 后面为原来的编码方式,-t 后面是要更改为的编码方式, -r 表示这个目录下面的所有文件, –notest 表示马上执行,而不是仅仅测试而已。另外这命令好像要root才能执行,因此要加上 sudo。
H. Linux下编码问题
你可以试试在IE中的编码选项设置为中文自动选择看看。
是不是你的网页在制作过程中编码选择有问题?建议你用dreamweaver编辑,里面有一个专门的字符编码选项,也可以转换为你想要的编码格式。
I. linux文件名编码出问题。
1、文件分区类型的目录结构有自己的编码。
2、分区在挂载时分区的驱动很多都有自己的编码转换功能。
3、本地编码和系统输入输出编码也是影响的地方。
4、现在还有这种问题吗?楼主你不会是还在用很古老的系统吧?
你随便转换就会遇到混乱问题,也就是明明是 utf8 的编码,你非要按照 gb 编码转换到 utf8 编码的过程,这样数据肯定转换的会有问题。转换过去后就是错误编码数据,再转换回来肯定会因为数据错误而无法转换,当然这个错误数据有的是可以处理,有的是不可以处理的。因为 gb 系列和 utf 系列都是动态长度的编码,而且都是用的差不多的算法,区别也就是表示的字符不同。所以错误数据有的时候可以处理,有的时候不能处理。
Qomo 默认应该是 utf8 编码环境,文件系统的目录结构挂载后也转换成了 utf8 编码挂载。但并不代表文本文件里面的数据也全都是 utf8 。我记得 Qomo 为了兼容,默认的文本处理编码是 GB 系列 。也就是说,环境编码和文件内容编码是不同的。
而且,GBK 和 GB 2312 和 GB18030 理论上兼容,但其实是需要码表转换的。所以直接 gbk 并不一定行。
再另外,图形界面的终端里面也有显示的编码设置。
无尽的编码问题最好的解决办法是只用 7bit 表示的语言。
J. Linux系统终端字体乱码(非管理员账户操作指南)
问题:使用一台Linux系统的机器,终端总是显示有乱码,不是中文乱码,看起来像是英文乱码,我这强迫症又受不了了
解决方案:
Linux字符编码默认为UTF-8,如果出现英文乱码有可能是系统设置的编码方式为GBK。
设置locale的根本就是设置一组总共12个LC开头的变量,不包括LANG和LC_ALL。
优先 级:LC_ALL > LC_* > LANG
可以看出原系统设置的为中文字体显示和运行的语言环境,所有的设置都是使用的 zh_CN.gbk ,因中英文字符编码方式不同,可能造成英文字符或者空格显示有乱码。
5.退出后再次查看locale(再次登录才生效)
乱码的字符消失了。locale转变为: