これが私の問題です。バイト配列に変換した InputStream がありますが、実行時の InputStream の文字セットがわかりません。私の最初の考えでは、すべてを UTF-8 で行うことでしたが、ISO-8859-1 としてエンコードされ、外国語の文字を含むストリームで奇妙な問題が発生しました。(狂ったスウェーデン人)
問題のコードは次のとおりです。
IOUtils.toString(inputstream, "utf-8")
// Fails on iso8859-1 foreign characters
これをシミュレートするために、次のものがあります。
new String("\u00F6")
// Returns ö as expected, since the default encoding is UTF-8
new String("\u00F6".getBytes("utf-8"), "utf-8")
// Also returns ö as expected.
new String("\u00F6".getBytes("iso-8859-1"), "utf-8")
// Returns \uffff, the unknown character
私は何が欠けていますか?