3

テキスト処理を行う従来の C コードがあります。すべてのルールとデータは ISO-8859-7 でエンコードされています。今、私はアンドロイドに移植しようとしています。JNIという適切な関数を構築しましたGetStringUTFChars()。この const char* はUTF-8. だから、ISOに変換する必要があります。

Windowsには、変換する関数がutf-8 (const char*)あり、 ISOに変換するためwchar_tに使用します。wcstombs()しかし、これは Android では機能しません。また、wchar_t は安全ではないことも読みました。

では、どうすればこの変換を実行できますか?

ありがとうございました

4

1 に答える 1

1

UTF-8 から ISO-8859-7 に変換します。最初に UTF-8 からネイティブ Unicode に変換し、次にネイティブ Unicode から ISO-8859-7 に変換します。ただし、UTF-8 では、ほぼすべての最新のスクリプトから 60000 を超えるコード ポイントが許可される可能性がありますが、ISO-8859-7 では 256 しか許可されません。したがって、データの損失に注意し、可能であればデータを unicode/UTF-8 に保つようにしてください。 .

現在のところ、利用可能な場合は Android 固有の API (iconv-android API を認識しています) または GNU Clibiconvライブラリを変換に使用できます。

于 2012-12-17T14:07:03.130 に答える