如何将utf8转换为iso-8859-7?

时间:2012-12-17 11:32:43

标签: android c utf-8

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

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

那么,我该如何进行这种转换?

谢谢

1 个答案:

答案 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库进行转换。

相关问题