1

私の Android アプリは、ISO-8859-1 エンコーディングのテキスト データのみを受け入れるオープンソース ライブラリを使用しています。cp1251 でエンコードされたテキストを入力したい東ヨーロッパのユーザーが何人かいます。Java はこれらの形式と Unicode 形式を完全にサポートできるため、これはオープンソース ライブラリの制限のようです。

1 つのオプションは、複数の文字セットをサポートするようにオープンソース ライブラリを変更することです。cp1251 を ISO-8859-1 に変換してから元に戻すことはできますか? どちらも 8 ビットの言語エンコーディングであるため、バイト レベルで同じ量のデータを格納しているように見えます。ただし、オープンソース ライブラリがバイト データを ISO-8859-1 エンコーディングの文字列に読み込む場合、ISO-8859-1 に存在しないバイト値は例外をスローする可能性があります。

私は文字セットの専門家ではありませんが、この変換を行うコード サンプルを見つけることができないという事実から、少なくとも確実には機能しないと思います。

4

1 に答える 1

3

これはまったくうまく機能しないというのは正しいです。CP1251の非ASCII文字のほとんどは、ISO8859-1には存在しません。(CP1251は東ヨーロッパで、多くのキリル文字が含まれています。ISO8859-1は西ヨーロッパであり、アクセント付きラテン文字、句読点、記号が混在しています。)両方で表される文字はいくつかありますが、ごくわずかです。 (そしてそれらのほとんどすべては句読点です)それはおそらくあなたに何の役にも立たないでしょう。

于 2013-01-08T01:49:28.320 に答える