如何将 UTF8 转换为 ISO-8859-7



我有传统的C代码进行文本处理。所有规则和数据均采用 ISO-8859-7 编码。现在,我正在尝试移植到安卓。我已经构建了适当的JNI函数,GetStringUTFChars().这个常量字符*似乎很UTF-8。所以,我需要转换为 ISO。

在Windows中,我有一个将utf-8 (const char*)转换为wchar_t的函数,然后使用wcstombs()转换为ISO。但是,这在Android下不起作用,我也读到wchar_t不安全。

那么,如何执行此转换?

谢谢

从 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 C libiconv库进行转换。

最新更新