user236939 Asked:2020-07-01 11:02:55 +0000 UTC2020-07-01 11:02:55 +0000 UTC 2020-07-01 11:02:55 +0000 UTC 为什么要创建符号“U+0000”? 772 最近我遇到了一个不存在的符号。也就是说,与 U + 200C 或 U + 200B 不同,它甚至没有打印出来。那么它是做什么用的呢? 1 个回答 Voted Best Answer jfs 2020-07-02T18:08:08Z2020-07-02T18:08:08Z U+0000存在于 Unicode 中是为了与旧标准兼容,这些标准是在位仍然使用孔物理设置在纸上的时代创建的。 俄罗斯先前标准的类似物 ( GOST 27465-87 ) 将 ПУС符号 ( ПУСТО) 定义为: 一个字符,其目的是填充媒体或时间间隔。CNC 符号可以在不影响信息内容的情况下在信息流中插入或删除,在这种情况下,添加或删除此符号可能会影响信息的放置和(或)设备的控制。 所以结论是: >>> print('\u0435\u0308') ё 和: >>> print('\u0435' + '\0'*1000 + '\u0308') ё 可能看起来一样,尽管第二个命令多打印了一千个字符。 该标准的意图(据我所知)是字符的位表示ПУСТО没有孔(例如,如果它1对应于孔,则它仅由零组成),不会在纸上留下标记 - 所以它ПУС例如,可以用来在穿孔带上保留空间以供将来插入,或者只是给硬件时间来完成之前的操作(类似于NOP 指令,它指示什么都不做)。 实际上,\0一个字节(使用基于 ascii 的编码解码时可以变成 U+0000 Unicode 字符)可以用作行尾指示符(在 C 中)或文本流中的单独行分隔符(通常为 NUL不能出现在预期的行内,所以这个字符作为一个很好的分隔符)。 例如,find -print0该命令打印 NUL 分隔的路径(\0不能是 *nix 中文件名的一部分)——这允许处理具有奇异名称、包含换行符或任何其他字节的文件。env -0下面是使用命令从子进程检索环境变量的特定代码示例(\0字节分隔各个条目,因为 POSIX 环境变量不能包含 NUL)——从 调用“source”命令 subprocess.Popen。
U+0000存在于 Unicode 中是为了与旧标准兼容,这些标准是在位仍然使用孔物理设置在纸上的时代创建的。
俄罗斯先前标准的类似物 ( GOST 27465-87 ) 将 ПУС符号 (
ПУСТО) 定义为:所以结论是:
和:
可能看起来一样,尽管第二个命令多打印了一千个字符。
该标准的意图(据我所知)是字符的位表示
ПУСТО没有孔(例如,如果它1对应于孔,则它仅由零组成),不会在纸上留下标记 - 所以它ПУС例如,可以用来在穿孔带上保留空间以供将来插入,或者只是给硬件时间来完成之前的操作(类似于NOP 指令,它指示什么都不做)。实际上,
\0一个字节(使用基于 ascii 的编码解码时可以变成 U+0000 Unicode 字符)可以用作行尾指示符(在 C 中)或文本流中的单独行分隔符(通常为 NUL不能出现在预期的行内,所以这个字符作为一个很好的分隔符)。例如,
find -print0该命令打印 NUL 分隔的路径(\0不能是 *nix 中文件名的一部分)——这允许处理具有奇异名称、包含换行符或任何其他字节的文件。env -0下面是使用命令从子进程检索环境变量的特定代码示例(\0字节分隔各个条目,因为 POSIX 环境变量不能包含 NUL)——从 调用“source”命令subprocess.Popen。