如果是这样,是否允许字符串中的任何位置?
答案 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)。