3

我有进行文本处理的遗留 C 代码。所有规则和数据都以 ISO-8859-7 编码。现在,我正在尝试移植到android。我已经建立了适当的JNI功能GetStringUTFChars()。这个 const char* 似乎是UTF-8. 所以,我需要转换成ISO。

在 Windows 中,我有一个转换为 ISO 的函数,utf-8 (const char*)然后wchar_t我用它wcstombs()来转换为 ISO。但是,这在 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 回答