Eclipse中各种编码格式及设置
操作系统:Windows 10(家庭中文版)
Eclipse版本:Version: Oxygen.1a Release (4.7.1a)
刚看到一篇文章,里面介绍说Ascii、Unicode是编码,而GBK、UTD-8等是编码格式。
Java中的编码问题(by 迷失之路):https://www.cnblogs.com/zj0208/p/7019102.html
涉及到下面几个编码格式(BMGS):
操作系统(OS)编码格式、JDK的编码格式、JVM的编码格式、Eclipse的编码格式、工作空间(Workspace)的编码格式、
项目编码格式、文本文件编码格式
1.操作系统BGMS
我的是Windows 10家庭中文版,因此,其BMGS为GBK。
2.JDK的BMGS、JVM的BMGS
JDK的编码继承了操作系统的BMGS,因此,安装好JDK后,其默认BMGS为GBK,同OS。
在没有特别设置的情况下,JVM启动时的BMGS和JDK相同,为GBK。不过,可以在JVM启动时通过命令修改其BMGS。
注意:还需深究
修改JVM的默认BMGS:http://notebookdong.iteye.com/blog/2237550
添加环境变量、JVM启动时添加参数:这两种方式在我看来都比较麻烦或影响很大。
更多参考:
更改JDK默认编码为UTF-8:http://blog.163.com/han_sboy@126/blog/static/2167612420155164539654/
这篇文章介绍的更深入,还没仔细看。
3.Eclipse的BMGS、Eclipse下Workspace的BMGS
Eclipse的BGMS是一个伪概念,实际上是不存在的,但是,在Eclipse我们可以全局性地设置工程的BMGS,而这个BMGS是指Workspace的。
打开Window->Preferences面板,选中其中的General->Workspace,在此面板的底部有一个Text file encoding配置项,默认是GBK,即运行Eclipse
的JVM的BMGS。
修改这里的BMGS后,即同时修改了此工作空间下所有的工程、文本文件的BMGS,影响很大!
比如,一个Java工程及其下的Java文件的BMGS是GBK,若是在这里修改为UTF-8后,此Java工程及其下的Java文件的BMGS也随之而改,此时,
之前Java文件中的非ASCII字符则会变为乱码,严重者会导致程序无法运行。
4.项目的BMGS
项目存在于Workspace中,新建项目会继承(Inherited)Workspace的BMGS,但其BMGS可以单独设置。
两个途径:
a.项目名上右键,选择Properties,进入项目的属性设置面板,在第一个属性项Resource的配置项中就可以设置——Text file encoding,
默认是继承,可以也可以选择单独配置;
b.选中项目名称,选择Eclipse菜单栏的Project->Properties菜单;
设置为UTF-8;
在这里修改完工程的BMGS后,工程下的文件的BMGS也改变为UTF-8了。
Text file encoding中的Store the encoding of derived resources separately是什么意思呢?
经过试验,在选中此选项后,在工程的.settings目录下的org.eclipse.core.resources.prefs文件中会增加下下面一行:
separateDerivedEncodings=true
需要注意的是,org.eclipse.core.resources.prefs文件在没有修改工程的BMGS是不存在的!
那么,有什么更大的影响呢?和项目迁移有关系吗?
5.文本文件的BMGS
文本文件可以简单地理解为各种程序源文件,其BMGS可以单独修改的,默认是继承了工程的BMGS。
右键进入文件的属性配置面板,或者,选择文件后,从菜单File->Properties进入,此面板中也有一个Text file encoding,修改它即可。
6.修改BMGS时的注意事项
a.优先级
Workspace的BMGS 低于 项目的BMGS 低于 文本文件的BMGS
b.覆盖范围
Workspace的BMGS 大于 项目的BMGS 大于 文本文件的BMGS
c.文本文件存在非ASCII字符时,更需要谨慎配置各个级别的BMGS
d.为何要设置为UTF-8
一是国际化支持更好、更大程度地支持中文,二是更有利于团队之间的合作开发。
在我的Windows 10中,默认中文BMGS是GBK,而在Windows XP、2000操作系统中,默认的BMGS为GB18030。
是否将Workspace的BMGS设置为UTF-8?
是否将项目的BMGS设置为UTF-8?
是否将文本文件的BMGS设置为UTF-8?
我的建议是:
设置Eclipse的Workspace的BMGS为UTF-8,再设置工程的BMGS为UTF-8,文本文件的无需单独设置。
e.项目迁移(需要验证)
项目在一个Eclipse上是继承BMGS,为UTF-8。
当其迁移到Workspace的BMGS为GBK的的Eclipse时,是否能成功运行?
注释是否不变为乱码?因为其配置为继承,此时,项目的BMGS将更改为GBK。
f.还有文章提到修改Java Source File的Default Coding
修改Java Source File这种文件的Default encoding为UTF-8:输入,更新即可。
g.关于PyDev开发的Python工程的BMGS设置
遵循本文前面讲的,需要【单独设置】工程的BMGS为UTF-8,而工程里面的文件的BMGS则保持默认的继承。
有些问题:
Python 2的默认编码是Ascii,而Python 3的是UTF-8,基于不同Python版本建立的工程 怎么设置BMGS呢?
Python 3可以采取上面提到的建议,而Python 2呢?还需要深究。
h.当前Eclipse中的Python File的Default coding
在File associations中选择一个项目,再输入想要的BMGS,保存即可生效。
需要注意的是,
Python 2的默认编码为Ascii,Python 3的为utf-8,若是项目会在两者之间切换,可以【在项目中单独设置、,而不是在这里做全局设置。
参考链接-关于Python2.X与Python3.X的编码问题:https://blog.csdn.net/mickeymouse1928/article/details/70168794
-------
Version 1:2018-04-27
第一个版本,待有更多实践后,可能会更新此博文。
Eclipse中各种编码格式及设置的更多相关文章
- Eclipse中 *.properties 文件编码设置
Eclipse 中的默认编码格式为 ISO-8895-1,在此编码下中文的会显示如下的效果 解决方法 Windows --> Preference --> General Types -- ...
- eclipse中查看java源代码设置方法
众所周知,第一次查看class文件时,eclipse会给个界面选择添加源代码路径. 但是,如果我要换源代码路径了怎么办,eclipse也不会提示了.那就使用手动的吧 方法1: 使用ec ...
- eclipse中Preferences的一些设置
1.在Eclipse里面设置了java文件保存时自动格式化,在java->Code Style->Formatter里设置了自定义的格式化的样式,这样每次保存后都会自动格式化代码,用了一段 ...
- 如何为 Eclipse 中的 Java 源文件设置为 UTF-8 默认编码(转)
要让一个 Java 源文件打开时编码格式为 UTF-8,需要做2件事情: 1)设置Java 源文件的默认编码格式为UTF-8: 2)设置workspace的编码格式为UTF-8. 相应设置如下: 设置 ...
- 在eclipse中的tomcat内存设置
设置步骤如下: 1.点击eclipse上的debug图标旁边的下拉箭头 2.然后选择Run Configurations, 3.系统弹出设置tomcat配置页面,在Argument中末尾添加参数中的V ...
- eclipse中tomcat内存溢出设置
Eclipse里启动Tomcat,配置内存大小 2009年12月11日 星期五 10:50 一般安装完eclipse之后,在安装目录下你应该可以看到有一个 eclipse.ini 文件,对了,就是在这 ...
- eclipse中的字体大小设置和背景色设置
1.字体大小设置 在basic下选择最后一个TextFont 护眼背景色设置 添加到自定义颜色后点确定 最后一步点apply
- 设置eclipse中python脚本的编码格式
今天在运行python脚本时报如下错误: SyntaxError: Non-ASCII character '\xe5' in file D:\pythonlearn1\src\day01\direc ...
- 在Eclipse中设置文件的默认打开方式
在Eclipse中,我们可以设置jsp.xml.js.sql等文件默认打开方式: ①.打开配置选项 ②.找到文件设置 ③.选中我们要设置的文件,默认即可:
随机推荐
- Solr7.2的安装与使用
单机安装Solr服务: https://www.cnblogs.com/LUA123/p/7906774.html extend: install_solr_service.sh 参数说明: 安装脚本 ...
- Android Data Binding(数据绑定)用户指南
Android Data Binding(数据绑定)用户指南 http://www.jianshu.com/p/b1df61a4df77 https://github.com/LyndonChin/M ...
- JDBC详解(一)
一.相关概念介绍 1.1.数据库驱动 这里驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡,同样道理 ...
- Web前端之Javascript详解20180330
一.javascript概述 javascript是基于对象和事件的脚本语言. 特点: 1.安全性(不允许直接访问本地硬盘(因为是被远程的浏览器解释)),它可以做的就是信息的动态交互 2.跨平台性(只 ...
- where EXISTS (子查询)多对多中通过中间表查对方列表
用户表A,小组表B,小组和用户是多对多关系,中间有个中间表M 已知 小组 id 即teamId ,想知道这个小组中的用户列表信息,可以如下写sql: select * from A a where E ...
- bzoj 3224
3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 16656 Solved: 7255[Submit][St ...
- SVN报错:Node remains in conflict显示冲突的解决办法
如果是提示文件冲突: svn revert --depth=infinity 有冲突的文件名 如果提示目录有冲突: svn revert --depth=infinity 目录名 搞定.
- Cloudstack介绍(一)
云计算的出现 基本上,云计算只是一种把 IT 资源当作服务来提供的手段.几乎所有 IT 资源都可以作为云服务来提供:应用程序.计算能力.存储容量.联网.编程工具,以至于通信服务和协作工具. 云计算最早 ...
- scrum敏捷开发重点介绍
参考: http://www.scrumcn.com/agile/scrum-knowledge-library/scrum.html https://www.zhihu.com/question/3 ...
- 关于JSON的解析方式
借鉴:站在巨人的肩膀上 一.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,在Json.org网站上,Java可以使用 ...