Java入门之编码GBK映射问题

来源:互联网 发布:获取json对象的key 编辑:程序博客网 时间:2024/06/15 11:41

你是不是想问,我直接复制人家的代码来运行,为啥也会出错呢?

原因很简单,windows系统的记事本和word都是默认使用GBK编码格式(虽然windows系统底层是Unicode编码,但此处讨论取决于你安装的镜像发行版),但我的Sublime默认使用UTF-8,同样是中文”我爱你”,在sublime和windows的记事本中总会有一个乱码!

这也是为什么说建议用notepad++学习而不是记事本的原因。现在外面几乎都规定用UTF-8作为标准。据我所知,记事本使用时候是没有编码设置的(保存时候可以选择保存为UTF8编码格式),但是sumline有个自动转换GBK为UTF-8的插件。

如果人家用windows系统记事本或者word写段c或者java程序代码给你,巧了,你用vc6.0可以完美运行(VC6.0基于vb和.Net,也是微软旗下产品),你很开心。

但是mac和linux平台这段代码就有可能不行了。先不说跨平台,跨个IDE吧,你发给我, 我也用windows系统,但就是运行不了你这个程序,为啥呢??

答案还是编码!编辑器设置好了默认编码,sublime默认是utf8,notepad++每次打开要设置编码(据我所知每次都要)!

下面的俩例子是我亲身体验:如果是C/C++程序,能成功编译和运行(因为写代码部分都被统一为英文,注释和输出提示可能为中文,会乱码),printf和cout函数中的中文会乱码,所以建立大家注释和提示都使用英文。

如果是java,使用dos命令编译时,会提示java错误”:编码GBK的不可映射……编码,看清楚哦,Java不能通过编译,C/C++是可以的啦。

0 0
原创粉丝点击