|
在QQ的群上你也许看到过这样的信息很神奇的事,按住 alt 键 ,依次输入 29482 然后松开 alt 你会看到你的名字。 不信就试一下! 如果你是第一次看到,应该会照着做,然后发现上当了。可你同时也会好奇,为什么用ALT+数字可以打出中文的?这是什么编码?
下面分三部分为你一一道来。
一,ASCII码
我们知道ASCII码的字符数很少,怎么会有中文的呢?这个大概可以说那是ASCII的扩展吧!具体的编码我们不去深究,看看具体的例子吧。在百度输入一些字去搜索,在浏览器的地址栏就可以看到字符是经过编码的。比如输入“工大后院”四个字,就会看到这样。
字符编码后还加上了个“%”,而且那些数字是十六进制来的(B9A4B4F3BAF3D4BA),每四个十六进制数表示一个汉字。用 Windows 自带的计算器可以转换成十进制(每四个去转换,如 B9A4、B4F3、BAF3、D4BA,分别变成十进制为 47524、46323、47859、54458)。打开记事本,按ALT键不放,用右边的数字键盘输入 47524,然后松开ALT键,你会看到一个“工”字。想知道所有中文的ASCII码,怎么办?上百度,在搜索栏输入你要知道它ASCII码的中文,然后看看浏览器的地址栏,去除%这个符号。每四个就组成一个中文的ASCII码(注意此时是十六进制数)。
二,UTF-8码
这个码简略地说一句。同上所说,在Google上搜索时,它的编码是UTF-8码。
同样输入“工大后院”,结果是这样。
三,Unicode码
Unicode码可以说是了不起的编码,因为它要包含全世界的文字。
回到前面所说,在QQ的聊天对话框按ALT,然后输入29482,会看到某个字。而在记事本做同样的动作,输出的字却不一样。这是因为编码不同。例子就不再举了。以下是一个 javascript 的小代码,可以实现字符转换成Unicode码。将码复制,保存文件名后缀为 htm 。(注意,转换后是十进制数)
- <html>
- <head>
- </head>
- <script language="javascript">
- //生成unicode以;隔开
- function toUnicode()
- {
- var src=source.value;
- if (src == '')
- {
- alert('请在文本框中输入字符');
- return;
- }
- result.value = '';
- for (var i=0; i<src.length; i++)
- result.value += src.charCodeAt(i) + ';';
- }
- //编码以 ; 隔开
- function toText()
- {
- if (source.value == '')
- {
- alert('请在文本框中输入字符');
- return;
- }
- var src=source.value.split(';');
- result.value = '';
- for (var i=0; i<src.length; i++)
- result.value += String.fromCharCode(src[i]);
- }
- </script>
- <body>
- <p align="center">字符转换成Unicode编码</p>
- <p align="center">
- 请在文本框输入字符串<br>
- <textarea id="source" rows="10" cols="100"></textarea>
- <p align="center">
- <input type="button" value="字符转换成Unicode" onclick="toUnicode()">
- <input type="button" value="Unicode转换成字符 " onclick="toText()">
- <p align="center">
- 转换结果:<br>
- <textarea align="center" id="result" rows="10" cols="100"></textarea>
- </body>
- </html>
复制代码
[ 本帖最后由 powerwind 于 2006-7-1 16:09 编辑 ] |
评分
-
1
查看全部评分
-
|