私の問題はかなり単純です:
new InputStreamReader(is, "UTF-8");
βと・をクエスチョンマークのように見せます。
これらの文字を正しく表示するには、どのエンコーダーを使用する必要がありますか?
私の問題はかなり単純です:
new InputStreamReader(is, "UTF-8");
βと・をクエスチョンマークのように見せます。
これらの文字を正しく表示するには、どのエンコーダーを使用する必要がありますか?
入力データが実際に含まれているエンコーディングを使用する必要があります。これらの文字を表すためのバイトを指定すると、いくつかの可能性を提案できる場合がありますが、そのことはわかりません。
いくつかのヒューリスティックを適用してエンコーディングを推測できる場合もありますが、データの出所に基づいて実際にそれを知る必要があります。この場合、入力内容が何であれ、ヒントを提供していません。Web応答からのものである場合Content-Type
は、応答のヘッダーを確認する必要があります。それがファイルからのものである場合、それは実際にはそのファイルを作成したものに依存します。
編集:これがWeb応答であることがわかったので、もちろん、ヘッダーダイビングを行う必要はありません。データをダウンロードして文字列自体としてデコードするHTTPクライアントライブラリを使用できます。
Charset Description
US-ASCII Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set
ISO-8859-1 ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1
UTF-8 Eight-bit UCS Transformation Format
UTF-16BE Sixteen-bit UCS Transformation Format, big-endian byte order
UTF-16LE Sixteen-bit UCS Transformation Format, little-endian byte order
UTF-16 Sixteen-bit UCS Transformation Format, byte order identified by an optional byte-order mark
したがって、目的のエンコーディングが得られるまで、2番目のパラメータでこれらの文字列をすべて試してください。
他の人が言ったことに加えて、Javaでの最終結果はUTF-8になり、それはあなたが持っているどんな文字でも処理できるようになるでしょう。ただし、ここでの問題は、どのように読み取るかです。これは、ファイルがどのエンコーディングで記述されているかによって異なります。これは、明らかにUTF-8ではありません。