【发布时间】:2011-05-07 14:50:46
【问题描述】:
我正在使用 g_convert() glib 函数将 utf-8 字符串转换为 utf-16 大端字符串。转换失败。我们收到一条错误消息,提示“不支持转换”
有人可以提供解决此问题的线索吗?
谢谢
以下是用于将字符串从 UTF-8 转换的代码。转为 UTF16 Bigendian
unsigned short *result_str;
gsize bytes_read, bytes_written;
gssize len = 0;
GError *error = NULL;
result_str = (unsigned short *)g_convert("text data", len, "UTF-16BE", "UTF-8", &bytes_read, &bytes_written, &error);
【问题讨论】:
-
我不熟悉它,但作为一个实用的解决方案,转换为小端 utf-16 然后只是字节交换怎么样?或者,查找 utf-8 编码算法,例如维基百科。有时 DIY 比让别人的代码工作更容易。 :-)
-
您能否发布一段最少的代码来显示您遇到的问题?问题的可能原因有很多,有一小段代码显示问题有助于消除一些可能性。
-
我总是想知道这些想将 转换为 UTF-16 的人。你会认为他们中的大多数人都想反其道而行之:毕竟,你在 UTF-8 中看到了多少网页?现在 UTF-16 有多少? '