ASCII字符编码是一种7位编码,范围从0×00-0x7F,包括了英文字母,阿拉伯数字,标点符号,控制字符等,其中0×00-0×20和0x7F表示控制字符。
换句话说,ASCII字符编码的编码范围为:0-254,其中0-32与127为控制字符。
Unicode字符编码的编码范围是:0-65535,它包含三套编码方式如:UTF-8,UTF-16和UTF-32。它和ASCII的关系为ASCII字符编码是Unicode字符编码的一部分。
懂得这点知识可以帮助我们理解这些方面的内容:
1.怎么识别一段文字中,那些是中文,哪些是英文。
2.在分割字符串时候,我们对于乱码的解决等等。
下面以一段JavaScript代码为例来进行说明,其中网页编码为utf-8。
<script type="text/javascript">
var str="测试一个文档中的English与Chinese,并把其中的中英文分开。";
var len=str.length;
document.write("测试字符的长度:"+len);
document.write("<br />");
for(i=0;i<len;i++)
{
unicode_num=str.charCodeAt(i);
document.writeln(unicode_num);
if(unicode_num<255)
{
char=str.charAt(i);
document.write(char+"该字符为英文");
document.write("<br />");
}
else
{
char=str.charAt(i);
document.write(char+"该字符为中文");
document.write("<br />");
}
}
</script>
通过运行的结果我们可以发现以下一些事实:
1.当网页编码为utf-8,gb2312时,字符长度是35,即是说中文字符与英文字符所用的编码格式都是相同的。
2.在中文输入法下,标点符号是中文而不是英文。如上面的逗号、句号。
3.因为中英文编码的格式是相同的,因此在进行字符串分割时不用考虑因为进行字符的裁剪而造成乱码的问题。而这是在php进行字符分割时要考虑的。
懂得上面的一些知识可以在以下的一些应用中指导我们:
1.对网页进行内容的提取。
2.统计一篇文章中总字符的个数,中文字符,非中文字符的个数,如Word里面的字数统计功能。(当然上面的仅仅是一个非常粗略的算法,即如果一个字符的Unicode值小于255则为英文,反正为中文,但是实际上却比这个要细得多,但是这样的一种方法可以作为一种粗略的统计工具,在很多的应用中已经足够使用,如上面的测试程序中。)
3.能在字符串剪裁中给予我们指导。
相关文章:
Comments
Leave a comment Trackback