0

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

转换后,我将消息发送到 Apple 服务器,长度有限。

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

4

1 回答 1

1

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

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

每个软件开发人员绝对、绝对必须了解 Unicode 和字符集的绝对最低要求

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

于 2013-10-16T10:00:31.497 回答