linux服务器编码格式与程序不匹配

linux服务器编码格式与程序不匹配,第1张

刚刚遇到了在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成功编译了。

因为用utf8可以支持大部分语言,gdk是中文的编码,不通用。

Windows的默认编码为GBK,Linux的默认编码是UTF-8。

在Windows下编辑的中文,在Linux下为乱码

问题:使用一台Linux系统的机器,终端总是显示有乱码,不是中文乱码,看起来像是英文乱码,我这强迫症又受不了了

解决方案:

Linux字符编码默认为UTF-8,如果出现英文乱码有可能是系统设置的编码方式为GBK。

设置locale的根本就是设置一组总共12个LC开头的变量,不包括LANG和LC_ALL。

优先 级:LC_ALL >LC_* >LANG

可以看出原系统设置的为中文字体显示和运行的语言环境,所有的设置都是使用的 zh_CN.gbk ,因中英文字符编码方式不同,可能造成英文字符或者空格显示有乱码。

5.退出后再次查看locale(再次登录才生效)

乱码的字符消失了。locale转变为:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7582373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存