0.概述
有一天,我突发奇想,想要在一段文本中筛选出所有的中文。
这一下把我难倒了——老师教的是 码,包含了所有的拉丁字母、数字等。但是汉字是怎么存储的?
我懵了,赶紧上网一阵乱查,把自己都查晕了,写个文章捋一捋。所以这是一篇没用的垃圾文章。
1.
码在百度百科中被解释为“美国信息交换标准代码”,是一种编码的方式,也是最简单的一种编码。它的范围很小,只用了 这些数字。
说明:下文将涉及一些 内的玩意儿。不知道是不是所有编程语言的存储方式都相同?
如果你试着将 和 乱转换,你就会得到一张 码表。这在百度百科中有。
众所周知, 是一个字节,可以存储 内的整数。
2.
只有拉丁字母怎么够?世界上那么多的语言,只靠 码表示不了啊。
然后就有了更强力的编码方案, 。显然来源于 的意义。它 可以容纳世界上所有文字和符号!可以参见百度百科。
介绍一个小技巧:在 中按 ,可以使光标前的字符转化成 码(十六进制)!再按一次,还能转换回来。提示: 是四位十六进制数,共两字节。
然而,很显然,这玩意儿很长。全世界的字符那么多,如果每一个都按照 规定的码值来存储,就会很浪费空间。用二进制一看:一大堆零!
所以 只规定了一个对应法则,但是 存储时使用特定方案。其中一种,就是 。
它是 变长 的,使用一到六个字节。究竟怎么存?请看这篇文章。
3.
是啥呀?其实就是 本地语言。所以它并不固定,在中国(简体中文), 代指 或 。
但是,任何一个国家的 都会使用两个字节来存储,除了纯英文使用 码。
可以看这篇文章来加深印象。至于 么?我马上要讲的啦!
4.
这是什么?是中文的编码方案(终于进入正题了)。它使用两个字节来存储一个汉字。而且,很有特点的是,这两个字节范围为 。为什么不使用 这个编码呢?有待考究。
这个范围,使用 存储时,将会得到负数。所以,负数就是判断中文的方法!
5.
然而 没有收录所有汉字,所以又搞了个 , 在 以后就代表着这种编码方式。
更多的我就不讲了,同学们自己看看这篇文章也是极好的。
反正我还没碰到过需要使用 相较于 扩展的字符。
6.控制台语言
有时候程序输出到控制台(黑窗口, ) 的中文会变成乱码,但是改用文件输入输出,直接打开文件,结果又是正确的。为什么?
因为控制台的默认语言是 。这可以通过右键单击打开的 窗口的边栏,选择属性,进行查看。
程序内的汉字常量(双引号内的汉字)的编码方式取决于 文件本身。 文件默认 。
7.总结
- 是个超级小的字符编码,但是常用的符号,如空格、换行等,皆包含其内。并且,这是国际标准,所以其余的编码方案几乎都没有改动已有的 对应方案。
- 是存储全世界通用编码 的方案。存储 码包含的字符,只需要一个字节;存储汉字,需要三个字节。所以, 可以存储中文。
- 都是汉字编码方式。与 是独立的。双字节,专门管中文,遇到日文就有点捉急了。
- 判断中文的方法:对于 ,使用 即可;对于 怎么办?