首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UTF-7的Charset.forName在linux和windows上获得不同的结果。

使用UTF-7的Charset.forName在linux和windows上获得不同的结果。
EN

Stack Overflow用户
提问于 2013-10-11 07:23:39
回答 2查看 234关注 0票数 3

代码:

代码语言:javascript
复制
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,混合模式)

我不知道怎么修好它..。

谢谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-11 07:25:35

这是java中的一个bug,您对此无能为力。

id=4304013

这件事似乎已经解决了,但我对此没有信心

票数 1
EN

Stack Overflow用户

发布于 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宣传为受支持的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19312456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档