5

ここで説明されているバグが原因で問題が発生しています: http://bugs.sun.com/view_bug.do?bug_id=6183404

カスタム文字セットを使用して、誤ったマッピングを修正する修正を既に実装しています。ただし、標準の「GBK」文字セットを使用するようにハードコードされているため、使用している 1 つの Java アプリケーションの問題は解決されません。

java.nio.charset.spi.CharsetProvider既存の標準文字セットをオーバーライドする方法はありますか?

4

1 に答える 1

3

Based on this code in Charset, it doesn't look like you can override the standardProvider since it gets searched before any additional ones.

if ((cs = standardProvider.charsetForName(charsetName)) != null ||
    (cs = lookupExtendedCharset(charsetName))           != null ||
    (cs = lookupViaProviders(charsetName))              != null)

If the application stores the charset name in a field, you could do something nasty with reflection to change it before the application starts up.

于 2012-07-25T09:33:49.323 に答える