首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >UTF-8可以包含零字节吗?

UTF-8可以包含零字节吗?
EN

Stack Overflow用户
提问于 2011-08-02 12:37:29
回答 2查看 32.5K关注 0票数 67

UTF-8字符串可以包含零个字节吗?我打算通过ascii明文协议发送它,我应该用base64之类的东西来编码它吗?

EN

回答 2

Stack Overflow用户

发布于 2011-08-02 12:41:17

ASCII文本限制为0到127之间的字节值。UTF-8文本没有这样的限制-用UTF-8编码的文本可以设置其高位。因此,通过不能保证高位安全通过的通道发送UTF-8文本是不安全的。

如果您被迫处理一个仅支持ASCII的通道,Base-64是一个合理的选择(虽然不是特别节省空间)。你确定你被限制为7位数据吗?这在今天有点不寻常。

票数 3
EN

Stack Overflow用户

发布于 2011-08-02 12:42:11

UTF-8编码的字符串可以在后备存储器的给定字节位置具有从0x00到0xff的大多数值(尽管不允许一些特定的组合,请参见http://en.wikipedia.org/wiki/UTF-8和八位位组的值C0、C1、F5到FF从不出现)。

如果要通过不支持二进制数据的通道传输ASCII流,则必须进行适当的编码。Base64得到了广泛的支持,并且肯定会解决这个问题,尽管它并不是完全有效,因为它使用64个字符空间来编码数据,而ASCII允许128个字符空间。

有一个sourceforge项目提供了基数91编码,它在避免不可打印字符http://base91.sourceforge.net/的同时更节省空间

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6907297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档