查看jdk的源码得知,String.getBytes()的源码如下:
public static Charset defaultCharset() {
if (defaultCharset == null) {
synchronized (Charset.class) {
java.security.PrivilegedAction pa =
new GetPropertyAction("file.encoding");
String csn = (String)AccessController.doPrivileged(pa);
Charset cs = lookup(csn);
if (cs != null)
defaultCharset = cs;
else
defaultCharset = forName("UTF-8");
}
}
return defaultCharset;
}
可知道: 1.首先获取JVM的默认编码,这个默认编码在java虚拟机启动的时候从操作系统里面的locale和charset获取
2. 如果获取不到默认的JVM默认编码,从字符串所在的文件的编码中获取
3.如果以上都获取不到,那么直接取UTF-8 编码
getBytes()默认使用的编码,是由Charset.defaultCharset()或者System.getProperty("file.encoding")参数决定的。
1、直接运行java的main函数可以证明。
2、但是为什么有些容器下,比如tomcat,解码用的不是操作系统编码,那是因为tomcat启动时,通过设置上面参数搞定的。在启动脚本里面设置file.encoding=UTF-8
分享到:
相关推荐
本文将深入探讨Java中设置String字符串编码的方法,帮助开发者更好地理解和使用这些功能。 首先,我们需要理解什么是字符编码。字符编码是将字符(如字母、数字和符号)与数字或二进制值关联的系统,例如ASCII、...
中文乱码问题在 Java Web 技术开发中的深入探讨 在 Java Web 技术开发中,中文乱码问题是一个常见的问题,影响了开发者的工作效率和项目的稳定性。本文将深入探讨中文乱码问题的成因、解决方法和预防措施,帮助...
### Java 字符编码详解 #### 一、Java 字符编码基础概念 在深入探讨 Java 字符编码的问题之前,我们先来了解一下字符编码的基本概念。...希望本文能帮助开发者们更好地理解和处理 Java 中的字符编码问题。
在Android平台上,开发人员经常需要处理各种字符编码问题,特别是在与不同系统或设备交互时。Ansi编码,也称为Windows默认的ANSI编码(通常基于locale的代码页,如GBK或CP1252),在桌面应用中广泛使用,但在Android...
本文将深入探讨Java中的字符编码问题,并提供一些实用的解决方案。 #### 二、Java中的字符编码基础 Java本身采用的是Unicode编码系统,这是一种国际化的编码标准,能够支持世界上几乎所有语言的文字表示。Java中的...
在Android开发中,字符编码...在实际开发中,确保正确处理字符编码至关重要,否则可能会出现乱码问题。合理地运用上述方法,能够帮助Android开发者在处理GBK编码数据时避免这类问题,从而提高应用的兼容性和用户体验。
在Java基础教程中,徐培成老师的"Java基础第09天-005.String-字符集编码"主题深入探讨了这一主题,帮助初学者理解字符串(String)类与字符编码的关系。 首先,我们要知道什么是字符集。字符集是一系列用于表示文本的...
在实际开发中,可能需要处理来自不同编码源的数据,因此理解和掌握字符串与Unicode之间的转换至关重要。在C#中,`System.Text.Encoding`类提供了丰富的功能,支持多种字符编码的转换。 至于压缩包中的文件,如`...
### JAVA里字符编码的探索与理解 #### 一、引言 在计算机科学领域,字符编码是将人类可读的文本转换...通过本篇文章的学习,希望读者能够更加深入地理解JAVA中的字符编码机制,并能够在实际开发中灵活运用这些知识。
本文将深入探讨Java如何处理中文编码,以及在不同场景下可能出现的问题。 1. Java 字符编码基础 Java 采用Unicode编码作为其内部字符表示,Unicode是一种包含全球多数语言字符的编码标准。每个Unicode字符由一个...
深入理解UTF-8字符编码是理解现代计算机系统中文本处理的关键。UTF-8是一种广泛使用的Unicode字符编码方式,它的全称是"8位Unicode Transformation Format"。在Java编程语言中,UTF-8更是默认的字符编码,对于处理...
本文将深入探讨Java环境中出现乱码的原因及其解决方案,帮助读者彻底理解并解决这一常见问题。 #### 二、乱码产生的原因 乱码的根本原因是编码不一致导致的。当一个字符从一种编码格式被错误地解释为另一种编码...
为了解决这类问题,我们需要对JSP应用中涉及到的所有环节进行深入分析。 #### 分析与解决步骤 ### 1. 确定系统环境 首先,明确开发和运行JSP应用程序的具体环境。这包括: - **操作系统**:确定操作系统的默认字符...
本文将深入探讨“常用中文编码显示及转换”的主题,包括汉字的页面编码、URL编码,以及在GBK和UTF-8之间的转换方法。同时,我们还将分析提供的源码文件,以了解其实现细节。 首先,我们要明白汉字的页面编码。页面...
综上所述,理解和熟练掌握`byte[]`与`String`之间的转换,是Android开发中的一项基础技能,能帮助开发者处理各种数据交换和存储问题。在实际应用中,根据具体需求选择合适的转换方法和字符编码,是确保数据正确性和...
首先,让我们深入理解UTF-8编码。UTF-8的特点是它使用1到4个字节来编码Unicode字符,其中ASCII字符(如英文字符)只需要一个字节。这种设计使得UTF-8与ASCII兼容,且在大多数情况下,可以更有效地处理文本,尤其是在...
字符串常量池的概念是理解String类的关键。当创建一个字符串时,如果常量池中已经存在相同内容的字符串,那么新创建的字符串会直接引用已有的,这被称为字符串常量池的复用机制,有助于节省内存。 最后,关于Java的...
通常,这会涉及到Java的`String.getBytes()`方法(使用特定的编码,如UTF-8)和C/C++中的`JNIEnv`接口来处理字节数组。 在Android开发环境中,Eclipse曾是广泛使用的IDE,尽管现在更多的是使用Android Studio,但这...
在IT行业中,尤其是在...了解以上知识点后,你可以根据`DownLoadUtils.java`的源代码进行更深入的学习,理解它是如何处理中文文件名问题的,并将其应用到你的项目中,以确保在各种情况下都能正确处理中文资源的下载。
中文乱码问题的解决不仅涉及编码转换的具体操作,更需要开发者对字符编码有深入的理解,以及在项目中采用统一、合理的编码策略。遵循以上步骤和建议,可以有效避免和解决Java开发中常见的中文乱码问题,提升用户体验...