代码:
import java.nio.charset.Charset;
public static Charset lookup(final String name) {
if (name == null) {
return null;
}
try {
Charset charset = Charset.forName(name);
if (charset != null) {
Charset superset = map.get(charset);
if (superset != null) {
charset = superset;
}
}
return charset;
} catch (IllegalCharsetNameException ex) {
log.warn("Exception caught", ex);
return null;
} catch (UnsupportedCharsetException ex) {
return null;
}
} 这个问题发生时,‘名称’是"UTF-7“的Charset.forName(名称);
我总是在我的Linux平台上获得IllegalCharsetNameException。
但在我的窗户平台上看起来没问题。
两个平台具有相同的源代码和java版本。
java版本"1.7.0_17“Java(TM) SE运行时环境(build 1.7.0_17-b02) Java HotSpot(TM) 64位服务器VM (build 23.7-b01,混合模式)
我不知道怎么修好它..。
谢谢!!
发布于 2013-10-11 07:25:35
这是java中的一个bug,您对此无能为力。
id=4304013
这件事似乎已经解决了,但我对此没有信心
发布于 2013-10-11 08:14:32
@RamonBoza发现了与此相关的最终"Bug“数据库条目。
它实际上是一个RFE,要求将UTF-7支持作为核心功能,即在所有平台上添加。
它已经用闭包代码“Closed”关闭了。这意味着这个问题还没有得到解决,而且很可能在未来也不会解决。
RFE评论指出,您应该期待第三方通过标准charset API/SPI添加UTF-7支持。Googling应该找到一个合适的实现;例如,您可以尝试这个开源的实现:http://www.freeutils.net/source/jcharset/。
您是否将这种不一致称为"bug“取决于您,但我将其称为特性。Java文档没有将UTF-7宣传为受支持的。
https://stackoverflow.com/questions/19312456
复制相似问题