跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
GSXAB的知识库
搜索
搜索
外观
登录
个人工具
登录
Advertising:
查看“︁空字符”︁的源代码
页面
讨论
简体中文
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
刷新
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
空字符
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[分类:字符实例]] {{InfoBox |name=空字符 |eng_name=null character |aliases=null,\0,NUL }} {{InfoBox |name=空字节 |eng_name=null byte |aliases=null }} {{#seo: |keywords=空字符, NUL |description=介绍了空字符的由来和相关的表示,以及常见用途。 |modified_time={{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} |published_time=2025-09-14 }} '''空字符'''('''null character''')是一个控制字符。这一字符出现在很多字符集中,且码位多数分配为 0 。在 [[ASCII]] 中为 <code>0x00</code> ,在 [[EBCDIC]] 中为 <code>0x00</code> ,在 [[Unicode]] 中为 {{UnicodeCodePoint|U+0000|<control-0000>, null}} 。需要指代这一字符时,经常缩写为 NUL 或 NULL (后者与[[空指针]]或[[空引用]]有歧义),也被展示为 ␀ ({{UnicodeCodePoint|U+2400|Symbol for Null}})。在 [[^ 表示法]]中表示为 <code>^@</code> 。 Basic 语言及相关语言将这个字符记为 <code>vbNullChar</code> , C 语言及相关语言将这个字符记为 <code>\0</code> 。 空字符在多数字符集的字符编码结果中都是 0 。特殊的是在 [[MUTF-8]] 中编码为 <code>0xC0.80</code> 。 == 历史 == 最初这个字符的含义是[[空操作]],对于打印机等不触发任何动作;在打孔纸带上,空字符代表这个字符的位置上没有孔,也可以认为当纸带上没有被打孔任何字符时,纸上被填满了空字符,而且在向纸带上打孔字符时,可以认为是用新字符在原来预留的一段空字符处做覆盖。这一段预留的空字符可能会被预留在中间,而且也无法事先保证长度与要插入的信息相同,因此需要保证这段空字符代表的信息相当于不存在,什么都不做。 == 现代使用 == 由于 C 语言中常常使用[[空字符结尾字符串]]形式的字符串,很多语言都继承了在字符串结尾使用空字符标记的特征。这是一种[[哨兵元素]]机制,通过一个字节的额外空间开销标记了总长度,而不需要额外记录字符串长度;而且长度也不会因为要使用[[整型]]记录字符串长度而被整型的范围限制。 对于二进制存储,或用单字节储存字符时,空字符会导致这一字节内的数据为 0 ,称为'''空字节'''('''null byte''')。 由于不同语言中字符串实现存在差异,有的环境中认为空字符是字符串的结尾,有的环境中用额外的长度数据标记字符串结尾,而且还存在不是字符串的纯二进制数据只能用长度数据确定范围,任何字节数据都无法作为结尾标记,在这些混用的场景下,使用空字符会扰乱对字符串结尾的判断,这称为'''空字节注入攻击'''('''null byte injection''')。 == 参考资料 == * https://en.wikipedia.org/wiki/Null_character
返回
空字符
。
Advertising: