1

我的 Android 应用程序使用一个只接受 ISO-8859-1 编码的文本数据的开源库。我有几个来自东欧的用户想要输入 cp1251 编码的文本。这似乎是开源库的一个限制,因为 Java 完全能够支持这些格式以及 unicode 格式。

一种选择是修改开源库以支持多个字符集。是否可以将 cp1251 转换为 ISO-8859-1 然后再转换回来?由于它们都是 8 位语言编码,因此您似乎会以字节级别存储相同数量的数据。但是,当开源库将字节数据加载到使用 ISO-8859-1 编码的字符串中时,ISO-8859-1 中不存在的任何字节值都可能会引发异常。

我不是字符集专家,但我找不到执行此转换的代码示例这一事实让我相信它不会工作,至少不可靠。

4

1 回答 1

3

你是对的,这根本不会很好地工作。CP1251 中的大多数非 ASCII 字符在 ISO8859-1 中不存在。(CP1251 是东欧的,包含很多西里尔字符;ISO8859-1 是西欧的,包含重音拉丁字符、标点符号和符号的混合。)两者都有一些字符,但很少(几乎所有这些都是标点符号)它可能对你没有任何好处。

于 2013-01-08T01:49:28.320 回答