查看: 1355|回复: 0
|
[教程]各国文字字节编译
[复制链接]
|
|
作者: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()就可以让不同平台的使用者都看到别人输入的问题了,是不是很好用呢?
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|