【发布时间】:2012-06-07 07:24:45
【问题描述】:
我有一个 api,它将 uni 代码数据作为 c 字符数组并将其作为 uni 代码中的正确短信发送。
现在我有四个代码点值对应于某些本地字母表中的四个字符,我想通过将它们插入 c char 数组来正确发送它们。
我试过了
char test_data[] = {"\x00\x6B\x00\x6A\x00\x63\x00\x69"};
其中 0x006B 是一个代码点,依此类推。
内部的api正在调用
int len = mbstowcs(NULL,test_data,0);
上面的结果为 0。似乎 0x00 被视为终止空值。
我想将上述代码点正确分配给 c 数组,以便它们在接收电话上生成相应的 utf16 字符(它确实支持字符集)。如果需要,我也可以更改 API。
平台是带有 glib 的 Linux
【问题讨论】:
-
查看了很多相关的现有问题,但还没有完全找到解决方案
-
API 需要哪种编码?您并没有说明这一点,并且说“将 unicode 数据作为 C 字符数组”确实并没有说明什么。您必须知道预期的编码,否则当然无法知道如何排列位。
标签: c unicode character-encoding