我有执行文本处理的遗留 C 代码。所有规则和数据都以 ISO-8859-7 编码。现在,我正在尝试移植到 android。我已经构建了 GetStringUTFChars()
的适当 JNI
函数。这个 const char* 似乎是 UTF-8
。所以,我需要转换为 ISO。
在 Windows 中,我有一个将 utf-8 (const char*)
转换为 wchar_t
的函数,然后我使用 wcstombs()
转换为 ISO。但是,这在 Android 下不起作用,我还读到 wchar_t 不安全。
那么,我该如何进行这种转换呢?
谢谢
最佳答案
从 UTF-8 到 ISO-8859-7。 首先从 UTF-8 转换为 native unicode,然后从 native unicode 转换为 ISO-8859-7。但是,UTF-8 可能允许来自几乎所有现代脚本的超过 60000 个代码点,而 ISO-8859-7 只允许 256 个。因此,您应该注意数据丢失并尽可能将数据保存在 unicode/UTF-8 中.
截至目前,您可以使用任何可用的 android 特定 API(我知道 iconv-android API)或 GNU C libiconv
库进行转换。
关于android - 如何将 utf8 转换为 iso-8859-7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913340/