我有遗留的C代码进行文本处理。所有规则和数据均以ISO-8859-7编码。现在,我正在尝试移植到android。我已经构建了JNI
的相应GetStringUTFChars()
函数。这个const char *似乎是UTF-8
。所以,我需要转换为ISO。
在Windows中,我有一个将utf-8 (const char*)
转换为wchar_t
的功能,然后我使用wcstombs()
转换为ISO。但是,这在Android下不起作用,我还读到wchar_t不安全。
那么,我该如何进行这种转换?
谢谢
答案 0 :(得分: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 C libiconv
库进行转换。