【问题标题】:ICU Big Endian StringsICU 大端字符串
【发布时间】: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


【解决方案1】:

我对其进行了排序,我所要做的就是读取每个 2 字节(16 位)字符并手动交换字节序。我以为它会更复杂,但我想不会。

【讨论】:

    猜你喜欢
    • 2011-04-12
    • 2019-09-12
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    相关资源
    最近更新 更多