UTF-8字符串可以包含NULL(0x0)吗?

时间:2015-10-11 00:23:30

标签: unicode utf-8

如果是这样,是否允许字符串中的任何位置?

1 个答案:

答案 0 :(得分:3)

是的,UTF-8将0x0定义为NUL。没有理由不能成为UTF-8流的一部分。 RFC 3629专门涵盖了这种情况:

  

U + 0000到U + 007F的字符编号(US-ASCII保留曲目)         对应于八位字节00到7F(7位US-ASCII值)。一个直接的         结果是普通的ASCII字符串也是有效的UTF-8         字符串。

正如您所知,有各种存储格式在编码NUL时遇到问题,因此修改后的UTF-8会提供替代编码,但是未经修改的" UTF-8要求将其编码为0x0(将其编码为C0 80,在第10节中明确地将其称为非法UTF-8)。