由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
获取系统默认编码:
System.getProperty("file.encoding");
分享到:
相关推荐
在Java编程语言中,获取文件编码是一个常见的任务,特别是在处理文本文件时,了解正确的编码格式至关重要,因为不同的编码方式会影响字符的表示和解析。本文将深入探讨如何在Java中识别和处理不同类型的文本编码,如...
在Java DB中,省市区编码表是一个用于存储中国省级、市级和区县级行政区域编码的数据结构,常用于地理信息系统、地址管理或者与地理位置相关的应用程序。这个表通常包含四个字段:`id`、`areaid`、`area` 和 `...
本篇文章将深入探讨Java中的字符编码以及如何获取文件的编码。 首先,我们了解基本的字符编码体系,如ASCII、ISO-8859-1和Unicode。ASCII是最基础的7位编码,可表示128个不同的字符,主要针对英语字符。ISO-8859-1...
然后,通过`Cipher.getInstance()`方法获取一个 Cipher 对象,这是Java中处理加密和解密的核心组件。在这个示例中,使用了"AES/ECB/PKCS5Padding"模式,其中: - "AES" 是加密算法。 - "ECB" 是电子密码本模式...
在Java编程中,正确识别和处理文件的编码方式至关重要,特别是在处理不同系统间的数据交换或者解析非ASCII字符的文本文件时。本篇文章将详细介绍两种常用的方法来检测Java程序中的文件编码:一是使用`cpdetector`第...
### JAVA获取系统时间知识点详解 在Java编程语言中,获取并格式化系统当前时间是一项非常基础且常用的操作。本文档将详细介绍如何利用Java内置类来实现这一功能,并深入探讨其中涉及的重要概念和技术细节。 #### ...
JAVA安全编码规范参考文档深入分析了在Java开发中如何编写安全的代码,降低系统被攻击的风险。文档内容涵盖了安全编码的基本原则以及常见漏洞的安全编码方法。 一、安全编码基本原则 1. 所有输入数据都是有害的 在...
字符编码系统如ASCII、ISO-8859-1、Unicode(包括UTF-8、UTF-16等)被广泛使用。本教程将深入探讨Java中的字符编码,以及它们在实际开发中的应用。 首先,我们需要理解什么是字符编码。字符编码是将字符与数字...
在Java中,每个字符串都有一个默认的字符编码,通常是平台相关的(例如,Windows系统通常默认使用GBK,而Linux系统则可能是UTF-8)。 Java提供了`java.nio.charset`包来处理字符编码。其中,`Charset`类是核心,它...
### Java 字符编码详解 #### 一、Java 字符编码基础概念 在深入探讨 Java 字符编码的问题之前,我们先来了解一下字符编码的基本概念。字符编码是计算机内部表示字符的一种方式,它涉及到如何将人类可读的文字转换...
以下是一些使用Java获取服务器基本信息的关键知识点: 1. **第三方库Sigar**: Sigar(System Information Gatherer and Reporter)是由Hyperic公司开发的一个跨平台的系统监控库。它提供了丰富的API来获取各种操作...
由于不同的系统、平台以及网络环境中可能存在多种字符编码格式,这导致了在处理文本数据时可能会遇到编码不一致的问题。本文旨在深入探讨与Java相关的字符集编码知识,包括但不限于编码的基本概念、几种常见的字符集...
本文档涵盖了Java编码规范的各种方面,包括集合类、线程、对称密码算法、异常处理、命名规范、随机数生成、压缩文件解压、安全编程规范、操作系统登录用户名获取、Java新循环写法、方法参数、字符串比较、加密和数字...
本示例将深入讲解如何使用Java Socket进行编码,结合CINDY开源包,为开发者提供实用的开发指导。 首先,理解Java Socket的基本概念至关重要。Java Socket是Java提供的API,它允许两个应用程序通过网络进行双向通信...
总结来说,Java中获取分布式唯一ID可以通过实现雪花ID算法,例如`SnowflakeIdWorker`,它能提供时间序列的64位整数ID。同时,可以使用`UUID`生成字符串唯一ID,但不适用于分布式环境。而`IdUtils`中的方法可能是对...
可以通过`System.getProperty("file.encoding")`获取当前系统默认编码。 2. String对象:String类在内部使用Unicode编码,无论其原始数据是什么编码,都会转换为Unicode存储。 三、InputStreamReader与...
在Struts框架中,JSP用于前端展现,Servlet 用于控制,Action 用于处理前端页面JSP发来的请求,请求参数通过ActionForm进行传递,Action 在获得请求后通过调度业务系统提供的Spring service bean做处理,最后将处理结果...
你需要读取这个Excel文件,使用Java的Apache POI库或者JExcelApi来解析,获取到对应地区的编码,然后用这些编码作为查询参数。 4. **高德地图API集成** 高德地图的天气API可能需要用户的位置信息,因此可能需要...
`jave`库是Java Audio Video Encoder (JAVE) 的简称,它允许开发者在Java应用中进行视频和音频的编码、解码、转换以及元数据的提取。JAVE的核心功能之一就是能够获取视频文件的关键属性,如视频时长、格式和大小。...
这篇博客文章“java获取省市县数据”可能讲述了如何利用Java语言来获取并处理中国各级行政区域的数据,如省、市、县。这在开发需要地域信息的应用程序,如物流系统、地图服务或者数据分析时非常有用。下面我们将深入...