[英]Spanish language encoding issue with Java Properties class load method
[英]Encoding in Java Prograaming Language
请参阅JLS7 。 第3.2节第16页的状态
Java编程语言使用UTF-16编码以16位代码单元的顺序表示文本。
我反汇编了一个hello world程序。
class Y {
String hello = "hello";
}
以下是程序集:
Classfile /c:/Work/SR1/e2/tmp/Y.class
Last modified Jan 5, 2014; size 240 bytes
MD5 checksum 96694fda4f346a62d5412c56dc36c45d
Compiled from "X.java"
class Y
SourceFile: "X.java"
minor version: 0
major version: 52
flags: ACC_SUPER
Constant pool:
#1 = Class #2 // Y
#2 = Utf8 Y
#3 = Class #4 // java/lang/Object
#4 = Utf8 java/lang/Object
#5 = Utf8 hello
#6 = Utf8 Ljava/lang/String;
#7 = Utf8 <init>
#8 = Utf8 ()V
#9 = Utf8 Code
#10 = Methodref #3.#11 // java/lang/Object."<init>":()V
#11 = NameAndType #7:#8 // "<init>":()V
#12 = String #5 // hello
#13 = Fieldref #1.#14 // Y.hello:Ljava/lang/String;
#14 = NameAndType #5:#6 // hello:Ljava/lang/String;
#15 = Utf8 LineNumberTable
#16 = Utf8 SourceFile
#17 = Utf8 X.java
{
...
我只看到Utf8编码,没有看到Utf16。 为什么没有Utf16编码。
谢谢
在执行程序中,文本以UTF-16表示(通常为1 )。
但是在“ .class”文件中,常量池中的文本(即,字符串文字,标识符等)以UTF-8编码以节省空间。 ( JVM规范-4.4节中规定了UTF-8中常量池条目的编码,与默认字符集无关。)
加载类文件时,类加载器会将UTF-8常量池条目转换为UTF-16。
1-可以编写应用程序以多种方式对文本进行编码。 我们在这里讨论的UTF-16编码是Java中文本数据的自然编码方案。 也就是说,当您将文本存储为String
或CharacterSequence
任何其他子类型时,获得的编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.