工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 3193|回复: 8

ALT + 数字 = ASCII + UTF-8 + Unicode ?

[复制链接]
发表于 2006-7-1 13:19 | 显示全部楼层 |阅读模式
在QQ的群上你也许看到过这样的信息
很神奇的事,按住 alt 键 ,依次输入 29482 然后松开 alt 你会看到你的名字。 不信就试一下!
如果你是第一次看到,应该会照着做,然后发现上当了。可你同时也会好奇,为什么用ALT+数字可以打出中文的?这是什么编码?

下面分三部分为你一一道来。

一,ASCII码

我们知道ASCII码的字符数很少,怎么会有中文的呢?这个大概可以说那是ASCII的扩展吧!具体的编码我们不去深究,看看具体的例子吧。在百度输入一些字去搜索,在浏览器的地址栏就可以看到字符是经过编码的。比如输入“工大后院”四个字,就会看到这样。
未命名.JPG
字符编码后还加上了个“%”,而且那些数字是十六进制来的(B9A4B4F3BAF3D4BA),每四个十六进制数表示一个汉字。用 Windows 自带的计算器可以转换成十进制(每四个去转换,如 B9A4、B4F3、BAF3、D4BA,分别变成十进制为 47524、46323、47859、54458)。打开记事本,按ALT键不放,用右边的数字键盘输入 47524,然后松开ALT键,你会看到一个“”字。想知道所有中文的ASCII码,怎么办?上百度,在搜索栏输入你要知道它ASCII码的中文,然后看看浏览器的地址栏,去除%这个符号。每四个就组成一个中文的ASCII码(注意此时是十六进制数)。

二,UTF-8码

这个码简略地说一句。同上所说,在Google上搜索时,它的编码是UTF-8码。
同样输入“工大后院”,结果是这样。
未命名2.JPG
三,Unicode码

Unicode码可以说是了不起的编码,因为它要包含全世界的文字。
回到前面所说,在QQ的聊天对话框按ALT,然后输入29482,会看到某个字。而在记事本做同样的动作,输出的字却不一样。这是因为编码不同。例子就不再举了。以下是一个 javascript 的小代码,可以实现字符转换成Unicode码。将码复制,保存文件名后缀为 htm 。(注意,转换后是十进制数)


  1. <html>
  2. <head>
  3. </head>
  4. <script language="javascript">
  5. //生成unicode以;隔开
  6. function toUnicode()
  7. {
  8.         var src=source.value;
  9.         if (src == '')
  10.         {
  11.                 alert('请在文本框中输入字符');
  12.                 return;
  13.         }
  14.         result.value = '';
  15.         for (var i=0; i<src.length; i++)
  16.         result.value +=  src.charCodeAt(i) + ';';

  17. }
  18. //编码以 ; 隔开
  19. function toText()
  20. {
  21.         if (source.value == '')
  22.         {
  23.                 alert('请在文本框中输入字符');
  24.                 return;
  25.         }
  26.         var src=source.value.split(';');
  27.         result.value = '';
  28.         for (var i=0; i<src.length; i++)
  29.         result.value +=  String.fromCharCode(src[i]);

  30. }
  31. </script>
  32. <body>
  33. <p align="center">字符转换成Unicode编码</p>
  34. <p align="center">
  35. 请在文本框输入字符串<br>
  36. <textarea id="source" rows="10" cols="100"></textarea>
  37. <p align="center">
  38. <input type="button" value="字符转换成Unicode" onclick="toUnicode()">
  39. <input type="button" value="Unicode转换成字符 " onclick="toText()">
  40. <p align="center">
  41. 转换结果:<br>
  42. <textarea align="center" id="result" rows="10" cols="100"></textarea>
  43. </body>
  44. </html>
复制代码

[ 本帖最后由 powerwind 于 2006-7-1 16:09 编辑 ]

评分

1

查看全部评分

发表于 2006-7-1 13:41 | 显示全部楼层
学到了,嘿嘿,%C2%B7%B9%FD&cl=3
回复

使用道具 举报

发表于 2006-7-1 14:05 | 显示全部楼层
D1A7B5BDD6AACAB6C1CB
回复

使用道具 举报

发表于 2006-7-1 15:45 | 显示全部楼层
进来学习下
回复

使用道具 举报

 楼主| 发表于 2006-7-1 15:56 | 显示全部楼层
感谢楼上经常路过我发的帖.
回复

使用道具 举报

发表于 2006-7-1 17:42 | 显示全部楼层

我也会

在QQ里玩这个游戏不错喔`~~嘿嘿`~~特别是对你的意中人表白的时候。。。嘿嘿`~我以前也做了一个Unicode码转换器,但是技术有限,只能一个字一个字查,还是楼主厉害,比我做的先进多了。嘻嘻~~~

以下是我整理在常用码:
我:25105   是:26159  猪:29482   你:20320

系:31995   真:30495  笨:31528   蛋:34057

个:20010   喜:21916  欢:27426   爱:29233

想:24819  衰:34928
回复

使用道具 举报

发表于 2006-7-1 18:40 | 显示全部楼层
%CE%D2%D2%B2%C0%B4%D1%A7%CF%B0%C1%CB
回复

使用道具 举报

J
发表于 2006-7-1 19:07 | 显示全部楼层
LZ的名字..
回复

使用道具 举报

 楼主| 发表于 2006-7-2 11:10 | 显示全部楼层
为了能方便读懂 2,3,7 楼几位的”密语“,转换十六进制如:%CE%D2%D2%B2%C0%B4%D1%A7%CF%B0%C1%CB成十进制,然后用ALT+数字显示出来,加上一段小程序。

  1. <html>
  2. <head>
  3. <script language="javascript">
  4. //以 % 隔开的十六进制转换成十进制
  5. function H2D()
  6. {
  7.         if (source.value == '')
  8.         {
  9.                 alert('请在文本框中输入字符');
  10.                 return;
  11.         }
  12.         var src=source.value.split('%');
  13.         result.value = "\n双字节:";
  14.         for (var i=1; i<src.length; i+=2)
  15.                 if(src[i]!='')
  16.                 result.value+=parseInt(src[i]+src[i+1],"16")+";";

  17.         result.value+="\n\n单字节:";

  18.         for (i=0; i<src.length; i++)
  19.                 if(src[i]!='')
  20.                 result.value+=parseInt(src[i],"16")+";";
  21. }
  22. </script>
  23. </head>
  24. <body>
  25. <p align="center">请在文本框输入字符串<br>
  26. <textarea id="source" rows="10" cols="100"></textarea>
  27. <p align="center">
  28. <input type="button" value="16进制转换10进制" onclick="H2D()">
  29. <p align="center">转换结果:<br>
  30. <textarea align="center" id="result" rows="10" cols="100"></textarea>
  31. </body>
  32. </html>
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-19 05:10

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表