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

标签 android c utf-8

我有执行文本处理的遗留 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/

相关文章:

Java.lang.RuntimeException :setParameters failed at android. hardware.camera.native_setParameter( native 方法)

c - 我在 C 中的数组函数调用中出错?

python - 为什么 locale.getpreferredencoding() 返回 'ANSI_X3.4-1968' 而不是 'UTF-8' ?

java - 使用java解析阿拉伯字符的问题

android - 我是否需要每帧都在 Canvas 上重绘所有对象?

android - 使用 BackBase CXP 检索联系人列表?

android - java.lang.NumberFormatException : Invalid int: "res/drawable/title_bar.xml" 异常

c - 获取 if 语句错误

c - 检索对通过 atexit() 注册的函数的引用

c - 从命令行传递参数时 *argv[] 中的字符大小