|
|
1
64
这真的很奇怪。。。一旦设置,默认的字符集将被缓存,并且当类在内存中时,它不会被更改。设定
以下是我的结果:
(更新) 好啊我确实用JVM1.5复制了您的bug。 查看1.5的源代码,没有设置缓存的默认字符集。我不知道这是否是一个bug,但1.6更改了此实现并使用了缓存的字符集:
JVM 1.6:
当您将文件编码设置为
至于为什么IO类如
JVM 1.6:
JVM 1.5:
但我同意这些评论。你 不应该依赖于这个属性 . 这是一个实现细节。 |
|
|
2
25
看起来像是未定义的行为。我知道,在实践中,可以使用命令行属性更改默认编码,但我不认为这样做时会发生什么。
当我看到人们在命令行上设置编码时,我会畏缩——你不知道这会影响到什么代码。 如果不希望使用默认编码,请通过适当的方法显式设置所需的编码/ constructor . |
|
|
3
6
这种行为其实并不奇怪。从类的实现来看,它是由以下原因造成的:
正如已经指出的,没有记录VM在这种情况下的行为。这个
|
|
|
4
4
首先,拉丁语-1与ISO-8859-1相同,因此,默认值对您来说已经可以了。对吗? http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html 这样做时,从源代码看,字符集似乎重置为UTF-8。这至少解释了大部分行为。 我不知道OutputStreamWriter为什么显示ISO8859_1。它委托给封闭源代码的sun.misc.*类。我猜它不是通过同样的机制来处理编码,这很奇怪。 当然,您应该始终指定此代码中的编码含义。我从不依赖平台默认值。 |
|
|
5
3
我已将WAS服务器中的vm参数设置为-Dfile.encoding=UTF-8,以更改服务器的默认字符集。 |
|
|
6
2
检查
它似乎与系统命令行中使用的编码相同。 |
|
|
Bard.Mus · 迁移后的数据库字符集环境 1 年前 |
|
|
David · 何时实际应用字符编码? 1 年前 |
|
|
Karlomanio · 区分两个西里尔字母字符串 1 年前 |
|
|
Gabriel Lucizano · 为什么我无法访问C中的文件 2 年前 |
|
|
Mira Kumar · 在网页上显示特殊字符 2 年前 |
|
jay.sf · 如何在pdf中使用UTF-8编码的字符矢量? 2 年前 |
|
|
Kevin Patel · UTF-8内容在Java中是否可能格式错误 2 年前 |