如何理解ASCII码?

发布于 2022-09-12 00:38:26 字数 297 浏览 30 评论 0

在网上找到这样一句话来解释ASCII:
美国码表,码表中只有英文大小写字母、数字、美式标点符号等。每个字符占用1个字节,所有字符映射的二进制都为正数,因此有128个字符映射关系。

那么我以一个疑问ASCII可以用来表示中文吗?如果能那上面说只有128个字符映射。

如果不能我找到一个网站 可以进对汉字和Ascii进行转换,比如“汉字”可以转化为“\u6c49\u5b57”。

\u6c49\u5b57”这两个东西是应该是ASCii了。那么能在ASCii表中找到其映射关系吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

万劫不复 2022-09-19 00:38:26

ASCII可以用来表示中文吗

不能。

我找到一个网站 可以进对汉字和Ascii进行转换,比如“汉字”可以转化为“\u6c49\u5b57

这个不是汉字的 ASCII 。这只是汉字的某种转义表示,这种表示只用到了 ASCII 字符。转义方案有很多种,这只是其中一种方式。

陌上芳菲 2022-09-19 00:38:26

我们上学时都有两个编号,一个是班级里面用的号数,一个是学号。
班级号数:班级学生的编号,一个班级一般不会上百人,所以用两位十进制数就够用(人多用三位,这边举例用两位)

1(01)表示同学A,2(02)表示同学B。。。类推
这是一班的编号,二班 1号同学就是其他人,而不再是同学A了(这边应该很好理解)

花名册用来记录编码规则,就像是 ASCII 码表,就是一个映射规则

学号:学校学生编号,学校所有的学生人就比较多了,有人来,有人走,两位三位肯定不够用了(我们这边用九位位举例)

202000001 表示2020年一班的同学A,202000002 表示2020年一班的同学B,202000076 表示2020年二班班的同学X。。。类推

假设一班班主任要记录一个活动名单,他就可以这样记录 010233,代表本班级1、2、33号的同学,而不需要用学号 202000001 202000002 202000033,这么长的字符串记录了。
如果学校要记录一个获奖名单,就要用学号来记录了202001001 202002002 202003043。。。

ASCII 就像是一个班级的编号,字符比较少,存储空间就小点。Unicode 就像是学号,字符比较多, 所以需要大一些的存储空间。

关于题主的想法:在 ASCII 编码表中找到某中文对应的编码。就像是在一班花名册中找二班某某同学的号数,怎么找得到么。。。

尸血腥色 2022-09-19 00:38:26

ascii 码只有这么多。
image.png

荭秂 2022-09-19 00:38:26

ASCII 全名 American Standard Code for Information Interchange,是美国人设计的,只能用来表示英语用到的字符,和一些特殊符号。
其他语言的字符太多, ASCII 只有一个字节,最多表示 256 个字符,显然不够用。但是可以给每个字符一个编号来表示,计算机里通常使用十六进制数,而十六进制所用到的每个字符都在 ASCII 表内,所以你可以使用 ASCII 码表示任意字符(比如 emoji ),但是需要定义自己的转换表,也就是字符集,ASCII 字符与目标字符的转换规则是编码规则(这二者的表述可能不太准确,希望有人能补正)。
目前最通用的字符集应该是 unicode ,最常见的编码规则应该是 utf-8 。
\u6c49\u5b57 就是"汉字"两个字符的 Unicode表示,可以使用下面的 JavaScript 代码解码:

JSON.stringify('\u6c49\u5b57'); // ""汉字""

至于能否“在ASCii表中找到其映射关系”,这么说吧,ASCII是使用二进制存储的,你能从二进制的真值表里找到对应的规律吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文