0

CP1251 から UTF-8 に文字列を変換するために iconv を使用しています 問題は、変換前の文字列の長さが 8 バイトの後に 4 バイトになることです。

変換後、長さが制限されている Apple サーバーにメッセージを送信します。

変換して同じ長さを維持するにはどうすればよいですか?

4

1 に答える 1

1

あなたがそれを行うことができる方法はありません。UTF-8 では、1 バイト コードは ASCII 値 0 ~ 127 にのみ使用されます。この場合、UTF-8 コードは ASCII コードと同じ値を持ちます。これらのコードの上位ビットは常に 0 です。

非 ASCII 文字をエンコードしようとすると、1 文字あたり 1 バイト以上になります。

すべてのソフトウェア開発者が絶対に、積極的に Unicode と文字セットについて知っておく必要がある絶対最小値

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

于 2013-10-16T10:00:31.497 に答える