相关疑难解决方法(0)

java中的utf-8解码

我正在尝试将参数从PHP中间层传递到了解J2EE的java后端.我正在用Groovy编写控制器代码.在那里,我正在尝试解码一些可能包含国际字符的参数.

到目前为止,我对调试此问题的结果感到非常困惑,因此我希望与您分享,希望有人能够对我的结果给出正确的解释.

为了我的小测试,我传递的参数是"déjeuner".只是为了确定,System.out.println("déjeuner")正确地给了我:

déjeuner
Run Code Online (Sandbox Code Playgroud)

在控制台中

以下是原始字符串的每个字符的char/dec和hex值:

next char: d 100 64
next char: ? -61 c3
next char: ? -87 a9
next char: j 106 6a
next char: e 101 65
next char: u 117 75
next char: n 110 6e
next char: e 101 65
next char: r 114 72
Run Code Online (Sandbox Code Playgroud)

请注意,UTF-8中的c3a9序列是所希望的字符:http://www.fileformat.info/info/unicode/char/00e9/index.htm

现在,如果我尝试将此字符串作为UTF-8字符串读取,就像在stmt.getBytes("UTF-8")中一样,我突然得到一个11字节的序列,如下所示:

64 c3 83 c2 a9 6a 65 75 6e 65 72
Run Code Online (Sandbox Code Playgroud)

而stmt.getBytes("iso-8859-1")给了我9个字节:

64 c3 a9 6a 65 75 6e 65 72
Run Code Online (Sandbox Code Playgroud)

请注意c3a9序列!

现在如果我尝试将UTF-8序列转换为UTF-8,就像在

new …
Run Code Online (Sandbox Code Playgroud)

java groovy encoding utf-8

7
推荐指数
1
解决办法
2万
查看次数

为什么Java EE 6需要为资源适配器实现equals()和hashCode()?

我正在努力将代码从JBoss 5.1升级到JBoss 7.1,如果这些方法没有在资源适配器中显式实现,它就会失败.我理解每个人的概念,并了解两者之间的契约.我不是在询问如何实施它们或它们的含义.我特别询问为什么必须为Java EE 6代码实现它们(在这种情况下是JBoss AS 7.1).

是否有充分的理由对其进行深思熟虑或仅仅具备以下内容:

boolean equals(Object obj) { return super.equals(obj) ; }
int hashCode() { return super.hashCode() ; }
Run Code Online (Sandbox Code Playgroud)

java resources equals adapter jboss7.x

5
推荐指数
1
解决办法
746
查看次数

标签 统计

java ×2

adapter ×1

encoding ×1

equals ×1

groovy ×1

jboss7.x ×1

resources ×1

utf-8 ×1