佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1281|回复: 0

[教程]各国文字字节编译

[复制链接]
发表于 2-2-2005 11:04 PM | 显示全部楼层 |阅读模式
作者:Super-Tomato


今天就来谈谈文字显示的问题吧,怎么说文字显示呢?那么就来说个最简单的例子,如果有任何朋友曾经写过Flash留言本的话,是否有遇到简体字和繁体字不能并存呢? 就是说简体字平台的朋友看不到繁体字,而繁体字系统的朋友看不到简体字。


这次就是来谈谈如何解决这类的问题,在这篇中会学习到文字和数组(Array)的应用







function encode(str) {
        var myText = "";
        for(var i=0; i<str.length; i++) {
                myText += "/u"+str.substr(i, 1).charCodeAt();
        }
        return myText;
}
function decode(str) {
        var myText = "";
        var myArray = str.split("/u" );
        for(var i=1; i<myArray.length; i++) {
                myText += String.fromCharCode(myArray);
        }
        return myText;
}
var test = "中文";
var num = encode(test);
trace(num);
trace(decode(num));









那么来看看第一个函数encode()中有哪些代码用法
var myText = ""; //先定义一个空值变量myText


再来使用for loop对我们要编译的文字分析长度,这个在帮助文档有教,主要的关键是str.length
str是我们要编译的文字,length是取得文字的长度

str.substr(开始,长度)的用法是方便取得文字中单个或数个指定的文字,如:
str.substr(0, 1); //文字的长度是2,而开始算起的编号不是1而是0

charCodeAt()是取得文字的字节编号

总结:在encode()函数中就是把要编译的字段分成每个字节,然后再把字节换成编号。每个字节编号以/u隔开



在decode()函数中
str.split(隔开)的用法就是以指定的文字或符号把字段隔开,例如:
字段 = "a,b,c,d";  //在这个例子可以看到个固定的隔开符号 ","
隔开之后会以数组的方式储存起来,所以myArray就是把字段分开后储存在这个变量当中,隔开字段之后就是你想要得到的内容了(字节编号)


String.fromCharCode(编号);用来把编号转换为相对的文字
再来以for loop把文字储存到myText变量之中




好啦,那么今天应该学到了一些指令的应用了吧。那么最重要是怎么运用这个代码呢?

在留言本中使用者输入文字之后,把使用者输入的文字使用encode()把所有文字转换之后储存在资料库中,那么读取资料库资料之后使用decode()就可以让不同平台的使用者都看到别人输入的问题了,是不是很好用呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 14-6-2024 07:30 PM , Processed in 0.057040 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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