【发布时间】:2013-04-25 08:58:58
【问题描述】:
我想将使用 ICU 的 UnicodeString 转换为以大端序编码的 UTF-16 字符串,以便通过套接字发送。
大端的东西把我弄乱了。我似乎找不到与 ICU 和 C++ 主题相关的任何资源。使用 C#,我可以使用 System.Text.Encoding.BigEndianUnicode.GetBytes,但 ICU 似乎没有提供这样的选择。
如何将 ICU UnicodeString 转换为大端、UTF-16 字节数组?
【问题讨论】:
-
好吧,如果你知道你的字符串是大端的,那么套接字排序也是大端的,所以你可以简单地省略通常用来将你的短裤转换为网络顺序的 htons 调用。跨度>
-
我不明白你的意思,但我有一个问题。给定一个 UTF-16 Unicode 数组,我可以简单地从数组中读取每个 short 并交换它吗?我认为这是合乎逻辑的,但我不确定整个 Unicode 的事情。不过,我将看看我是否可以在 C# 中做到这一点,以进行检查。
标签: c++ endianness icu