2

我正在将 OBEX 推送传输到我们从 Android 手机构建的嵌入式系统。传输在我的 debian 桌面上工作,但在嵌入式系统上失败,出现错误“obexd [741]:断开连接:Unicode 转换失败:无法打开从 'UTF16BE' 到 'UTF8' 的转换器”

现在,当我键入“i​​conv -l”时,我可以看到我在我的 debian 桌面上设置了 UTF16BE,但在我的嵌入式系统上却没有。在这两个系统上,我都有 UTF-8 和 UTF-16BE,但在嵌入式系统上没有 UTF8 和 UTF16BE。我被构建系统中某些软件包的旧版本所困扰,所以我想我只需要构建一个更新版本的 glib。我设法构建了 2.27.93,我认为它比 debian stable 更新。在构建之后,它会列出与以前相同的字符集。我还下载了 debian 源代码并寻找缺少破折号的参考资料,但还没有找到任何东西。

如何获得对 UTF16BE 字符集和 UTF-16BE 的支持?他们真的不一样吗?

4

1 回答 1

2

UTF16BE 和 UTF-16BE 肯定没有区别。存在各种不同大小写和标点符号的字符编码名称变体,通常是因为名称适用于对名称语法有不同限制的各种上下文。

您可能有一个文件/usr/lib/gconv/gconv-modules可以包含这样的别名:

#       from                    to                      module          cost
alias   UTF16BE//               UTF-16BE//

我建议在您的嵌入式系统上手动编辑该文件以添加 UTF16BE 别名。

于 2012-06-28T01:02:01.680 回答