我们遇到了由这里描述的bug引起的问题:http://bugs.sun.com/view_bug.do?bug_id=6183404
我已经使用自定义字符集实现了修复,以修复不正确的映射。然而,这仍然不能解决我们正在使用的一个Java应用程序的问题,因为它是硬编码的,无法使用标准的"GBK“字符集。
有没有办法使用java.nio.charset.spi.CharsetProvider
覆盖现有的标准字符集?
发布于 2012-07-25 17:33:49
基于Charset
中的这段代码,看起来您不能覆盖standardProvider,因为它会在任何其他搜索之前被搜索。
if ((cs = standardProvider.charsetForName(charsetName)) != null ||
(cs = lookupExtendedCharset(charsetName)) != null ||
(cs = lookupViaProviders(charsetName)) != null)
如果应用程序将字符集名称存储在一个字段中,那么在应用程序启动之前,您可以使用反射做一些很糟糕的事情来更改它。
https://stackoverflow.com/questions/11646028
复制相似问题