我有传统的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
库进行转换。