ALT + 数字 = ASCII + UTF-8 + Unicode ?
在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);
}
</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 编辑 ] 学到了,嘿嘿,%C2%B7%B9%FD&cl=3 D1A7B5BDD6AACAB6C1CB 进来学习下 感谢楼上经常路过我发的帖.
我也会
在QQ里玩这个游戏不错喔`~~嘿嘿`~~特别是对你的意中人表白的时候。。。嘿嘿`~我以前也做了一个Unicode码转换器,但是技术有限,只能一个字一个字查,还是楼主厉害,比我做的先进多了。嘻嘻~~~以下是我整理在常用码:
我:25105 是:26159猪:29482 你:20320
系:31995 真:30495笨:31528 蛋:34057
个:20010 喜:21916欢:27426 爱:29233
想:24819衰:34928 %CE%D2%D2%B2%C0%B4%D1%A7%CF%B0%C1%CB LZ的名字.. 为了能方便读懂 2,3,7 楼几位的”密语“,转换十六进制如:%CE%D2%D2%B2%C0%B4%D1%A7%CF%B0%C1%CB成十进制,然后用ALT+数字显示出来,加上一段小程序。
<html>
<head>
<script language="javascript">
//以 % 隔开的十六进制转换成十进制
function H2D()
{
if (source.value == '')
{
alert('请在文本框中输入字符');
return;
}
var src=source.value.split('%');
result.value = "\n双字节:";
for (var i=1; i<src.length; i+=2)
if(src!='')
result.value+=parseInt(src+src,"16")+";";
result.value+="\n\n单字节:";
for (i=0; i<src.length; i++)
if(src!='')
result.value+=parseInt(src,"16")+";";
}
</script>
</head>
<body>
<p align="center">请在文本框输入字符串<br>
<textarea id="source" rows="10" cols="100"></textarea>
<p align="center">
<input type="button" value="16进制转换10进制" onclick="H2D()">
<p align="center">转换结果:<br>
<textarea align="center" id="result" rows="10" cols="100"></textarea>
</body>
</html>
页:
[1]