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成功编译了。

Windows的默认编码为GBK,Linux的默认编码为UTF-8。在Windows下编辑的中文,在Linux下显示为乱码。为了解决此问题,修改Linux的默认编码为GBK。方法如下:

方法1:

vi /etc/sysconfig/i18n

默认为:

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

修改为:

LANG="zh_CN.GBK"

SUPPORTED="zh_CN.UTF-8:zh_CN:zh"

SYSFONT="latarcyrheb-sun16"

方法2:

vi /etc/profile

export LC_ALL="zh_CN.GBK"

export LANG="zh_CN.GBK"

运行locale指令得到当前系统编码设置的详细资料。

一、locale的五脏六腑

1、 语言符号及其分类(LC_CTYPE)

2、 数字(LC_NUMERIC)

3、 比较和排序习惯(LC_COLLATE)

4、 时间显示格式(LC_TIME)

5、 货币单位(LC_MONETARY)

6、 信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES)

7、 姓名书写方式(LC_NAME)

8、 地址书写方式(LC_ADDRESS)

9、 电话号码书写方式(LC_TELEPHONE)

10、度量衡表达方式(LC_MEASUREMENT)

11、默认纸张尺寸大小(LC_PAPER)

12、对locale自身包含信息的概述(LC_IDENTIFICATION)。

二、理解locale的设置

设定locale就是设定12大类的locale分类属性,即 12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量:LC_ALL和LANG。

它们之间有一个优先级的关系:LC_ALL >LC_* >LANG

可以这么说,LC_ALL是最上级设定或者强制设定,而LANG是默认设定值。

三 具体设定locale的方法(zh_CN.UTF-8、zh_CN.GBK)

freebsd的设置:

1.GDM登录改为终端登录后startx启动图形桌面

2.在~/.cshrc中增加如下语句,(根据自己使用的shell进行相应设置)

setenv LANG zh_CN.GBK

setenv LC_ALL zh_CN.GBK

setenv LC_CTYPE zh_CN.GBK

3.修改/etc/fstab的默认值:

linux 设置:

1.修改/etc/sysconfig/i18n文件,LANG="zh_CN.UTF-8"或LANG="zh_CN.GBK"

普通用户修改~/.profile

...

export LANG zh_CN.GBK

...

2.修改/etc/fstab的默认值


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/115525.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存