Ecplise设置全局编码为UTF-8的方法

简介: 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好让Java文件使用UTF-8编码。 然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP、Windows 2000简体中文)的缺省编码是GB18030,Windows7/8/10的缺省编码是GBK,在此工作空间中建立的工程编码是GB18030或者GBK,工程中建立的java文件也是GB18030或者GBK。

如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好让Java文件使用UTF-8编码。

然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP、Windows 2000简体中文)的缺省编码是GB18030,Windows7/8/10的缺省编码是GBK,在此工作空间中建立的工程编码是GB18030或者GBK,工程中建立的java文件也是GB18030或者GBK。

如果要使新建立工程、java文件直接是UTF-8则需要做以下工作: 

  1、Windows --> Preferences  打开"首选项"对话框,左侧导航树,导航到General --> Workspace,右侧 Text file encoding,选择 Other,改变为 UTF-8,以后新建立工程其属性对话框中的 Text file encoding 即为 UTF-8 。 

  2、Windows --> Preferences. 打开"首选项"对话框,左侧导航树,导航到General --> Content Types,右侧Context Types树,点开 Text 中每一个子项,并将其编码设置为"UTF-8",再点 update。

    点击修改的子项有:Gitignore File、Java Source File、Patch File、Patch or Diff File、Runtime log files、WikiText,如下图所示:

    其他java应用开发相关的文件如:Java Properties File、XML等已经由Eclipse缺省指定,分别为 ISO8859-1 、UTF-8 ,如开发中确需改变编码格式则可以在此指定。 

   3、Window --> Preferences --> Web --> JSP Files 面板选择 ISO 10646/Unicode(UTF-8)    特别注意:ecplise的标准版本没有没有Web选项,ecplise的企业版本有Web选项。

    所以对于ecplise的标准版本来说,执行前两步就可以了;对于ecplise的企业版本需要执行三步。

   4、经过上述三步,新建java文件即为UTF-8编码,Eclipse编译、运行、调试都没问题,但是做RCP应用的Product输出时、或者插件输出时,则总是出错,要么不能编译通过(输出时要重新compile)、要么输出的插件运行时中文显示乱码。

    此时需要在RCP应用、或插件Plugin工程的build.properties中增加一行,javacDefaultEncoding.. = UTF-8。让输出时编译知道java源文件是UTF-8编码。

    这个设置需要保证所有的java源文件时UTF-8编码格式,如果不全是,可以参考 Eclipse帮助中(Plug-in Development Environment Guide --> Reference --> Feature and Plug-in Build configuration),建议全部java源文件是UTF-8编码。 

    如果插件开发、RCP应用开发原来基于其他编码,如GB18030,想转换为UTF-8,则首先,做以上工作;然后通过查找编码转换工具,如基于iconv的批量转换工具,将原编码转换为UTF-8编码,注意只转换java源文件,其他类型文件可能已经是比较合适的编码了;将原工程属性中的Text file encoding,从原编码改为UTF-8即可。

ecplise的标准版本

ecplise的企业版

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
4月前
|
机器学习/深度学习 新能源 调度
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
358 1
|
分布式计算 Java Hadoop
java使用hbase、hadoop报错举例
java使用hbase、hadoop报错举例
319 4
|
3月前
|
JSON 运维 监控
拼多多:通过物流预警API提前识别异常订单,主动联系用户
拼多多集成物流预警API,实时监控订单状态,通过规则引擎识别延迟、丢失等异常,自动触发用户通知,提升满意度、降低售后压力。技术结合API调用、异常检测与自动化响应,实现主动式物流管理,助力构建高效、可信的电商体验。(238字)
236 0
|
算法 关系型数据库 MySQL
mysql view 更新问题
【8月更文挑战第28天】mysql view 更新问题
195 3
|
网络协议 前端开发 Java
SpringBoot+Netty开发IM即时通讯系列(一)
简单来讲,Netty是一个提供了易于使用的API的客户端/服务端框架。Netty并发非常高,一个非阻塞的IO,Netty传输速度也非常快,因为他是0拷贝,什么是零拷贝?NIO中的特性之一就是零拷贝,在Java中,内存分为堆和栈以及字符串常量值等等,如果有一些数据从IO中读取并且放到堆里面,中间会经过一些缓冲区。
1437 0
SpringBoot+Netty开发IM即时通讯系列(一)
|
前端开发 JavaScript
umi 中useSearchParams 的使用样例
在umi中,`useSearchParams`是一个React Hook,用于获取和操作URL查询参数。以下是一个使用`useSearchParams`的样例: 首先,确保你已经安装了umi和react-router-dom。 1. 在页面组件中使用`useSearchParams`来获取和操作URL查询参数: ```javascript import { useSearchParams } from 'umi'; export default function SearchPage() { const [searchParams, setSearchParams] = useSea
1550 2
|
存储 算法 Serverless
22年+21年 计算机能力挑战赛初赛C语言程序题 题解
22年+21年 计算机能力挑战赛初赛C语言程序题 题解
411 2
|
存储 缓存 NoSQL
CentOS7 下源码安装Redis并配置服务开机启动
CentOS7 下源码安装Redis并配置服务开机启动
777 1
|
移动开发 数据库
使用notepad++将每行文本的开头结尾统一加上"",
使用notepad++将每行文本的开头结尾统一加上"",
700 0
|
存储 Java 分布式数据库
HBase基础编程——HBase Java API编程
HBase基础编程——HBase Java API编程
HBase基础编程——HBase Java API编程