当前位置 博文首页 > 文章内容

    网页中使用Unicode字符的介绍(&#,\u等)

    作者:shunshunshun18 栏目:未分类 时间:2021-11-28 11:03:44

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    最早的计算机只能使用ASCII字符,但随着计算机应用范围的扩展,很多国家都设计了用于计算机的特殊字符集,使自己国家和民族的字母及文字都能在计算机上显示和处理,比如中国的GB2312码。后来出现了互联网,把整个世界都连了进来,在一台计算机甚至一个界面上显示多国多民族文字变成现实的需要。国际组织制定了可以容纳世界上所有文字和符号的字符编码方案,称为Unicode,是通用字符集Universal Character Set的缩写,用以满足跨语言、跨平台进行文本转换、处理的要求,自从1994年发布,不断进行扩展,目前已经到了Version 10。

    可以进入网址https://www.unicode.org/查询详细信息,包括下载最新版本的码表。

    在设计网页时,就可以使用Unicode字符集,使用时根据是在HTML、CSS中,还是在JavaScript中,而有不同的方法。

    1)HTML中使用:&#dddd;或&#xhhhh;

    其中dddd表示4位10进制数值,hhhh表示4位16进制数值,两种格式分别以&#及&#x为前缀,表示为10进制码或者16进制的Unicode码,都需要以分号为后缀。目前,使用4位16进制码的Unicode字符获得比较好的支持,大多数都可以在网页中正常显示,但其他更多的Unicode字符往往还不能显示出来,这是因为使用的计算机平台还没有安装相关的Unicode支持。示例:
    <p>显示Unicode字符--∰</p>
    其中显示了一个数学符号,Unicode码为2230,可以使用“&#x2230;”或“&#8752;”来输出这个特殊字符,然后就可以在页面中显示出来了。

    2)CSS中使用:\hhhh

    CSS中使用Unicode字符的场合比较少,但偶尔也会用到,一般是使用4位16进制Unicode码表示,前缀为反斜符。

    3)JavaScript中使用:\uhhhh

    JavaScript代码中经常会用到输出特殊字符,如在某个元素中输出温度或角度符,使用希腊字母、罗马数字等,只需要在4位Unicode的16进制码前面加上前缀“\u”即可。示例:

    document.body.innerHTML="\u25D0";

    其中使用了Unicode码25D0,在几何图形表中,是一个圆形图案,一般填充白色一半填充黑色,像半个月亮。

    当然,中国人最常见的使用Unicode码的场合是用汉字。为了显示更多的汉字,汉字库先从GB2312扩展到GBK,目前又扩展到GB18030。最新版本的GB18030已经收入7万多个汉字,还包括各种少数民族文字,还有一些特殊字符,这个标准与Unicode码方式是一致的。当然,有些计算机未必安装了完整的新版本的支持软件,所以往往只能显示一部分字符。

    为了获得一个汉字的Unicode码,可以使用JavaScript函数charCodeAt(),例如:

    var ucode="赵".charCodeAt();

    这样就把汉字“赵”的Unicode代码存入变量ucode中,可以获取得到Unicode码为36213,这是一个十进制的Unicode码。可以使用toString(16)方法把这个10进制码转为16进制码:

    var ucode="赵".charCodeAt().toString(16);

    这样获得的就是汉字“赵”的16进制形式的Unicode码,得到的值为8d75。

    一般情况下输出汉字,可以将包括汉字的字符串直接显示。也可以使用汉字的Unicode码输出对应的汉字或其他字符:

    String.fromCharCode(36213);

    这样就将十进制Unicode码为36213的字符转换为字符串,然后将此字符串输出就会显示汉字“赵”。因为汉字可以使用输入法直接得到字符串,所以这种方法往往用来输出一些特殊字符。

    把&#编码转换成字符

    这是unicode编码,编码过程这样:

    比如要把“杨”编码,我们可以新建一个记事本,输入“杨”保存时选择存为unicode编码,然后查看文件二进制内容,前面的FF FE两个字节是unicode编码文件头标志,接着的68 67两个字节就是“杨”的unicode编码,用计算器换算为十进制就是26472,现在可以在一个html文件里面写入“杨”,IE打开就显示一个“杨”字。

    当然,对于一般ASCII码,unicode编码与ASCII编码一致,所以A可以显示一个大写字母“A”.

    把&#编码转换成字符

    function uncode(str) {
    return str.replace(/&#(x)?([^&]{1,5});?/g, function (a, b, c) {
    return String.fromCharCode(parseInt(c, b ? 16 : 10));
    });
    }

    把字符转换成&#编码

    function encode(str) {
    var a = [], i = 0;
    for (; i < str.length ;) a[i] = str.charCodeAt(i ++);
    return "&#" + a.join(";&#") + ";";
    }
    jsjswy