【问题标题】:Iconv byte lengthIconv 字节长度
【发布时间】:2013-10-24 08:57:30
【问题描述】:

我正在使用 iconv 将字符串从 CP1251 转换为 UTF-8 问题是转换前的字符串长度是 4 个字节,之后是 8 个。

转换后我发送消息到苹果服务器,长度是有限的。

如何获得转换并保持相同的长度?

【问题讨论】:

  • 你不能..猜猜为什么 UTF-8 结尾有 8 :) en.wikipedia.org/wiki/UTF-8
  • 我举个不好的例子,转换会使字符串的长度加倍。

标签: php utf-8 iconv cp1251


【解决方案1】:

你没有办法做到这一点。在 UTF-8 中,单字节代码仅用于 ASCII 值 0 到 127。在这种情况下,UTF-8 代码与 ASCII 代码具有相同的值。这些代码的高位总是0。

当您尝试编码非 ASCII 字符时,您会得到更多,然后每个字符 1 个字节。

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets

http://en.wikipedia.org/wiki/UTF-8#Overlong_encodings

【讨论】:

    猜你喜欢
    • 2018-11-13
    • 2013-02-26
    • 2010-09-07
    • 2011-04-26
    • 2014-06-27
    • 2018-10-13
    • 2010-10-28
    • 1970-01-01
    相关资源
    最近更新 更多