zoukankan      html  css  js  c++  java
  • javascript中文乱码问题分析及解决方案

    引用外部js乱码

    在web开发中我们一般都会不可避免的使用js。我们可以将js代码直接放在页面中即通过内部使用js。但是为了给页面良好的"瘦身"我们一般都会将js代码放在外部,然后通过src引用。这个时候我们就需要注意一个问题:编码问题。如果web页面也js采用不同编码,这个时候就会出现乱码。(内部使用js不需要注意编码问题,因为他们采用的是同一种编码)

    对于大多数的web页面,我们一般都是使用如下两种编码:UTF-8、GB2312。所以我们只需要统一页面和js编码就可以解决乱码问题:
    对于GBK页面引用编码为UTF-8编码的JavaScript文件如果出现乱码问题,可以使用下面的代码来解决

    <script type=”text/javascript” src=”test.js” charset=”utf-8″></script> 

    同样在UTF-8页面中引入编码为GBK的JavaScript文件乱码问题了,可以使用如下方式:

    <script type=”text/javascript” src=”test.js” charset=”gb2312″></script> 

    此方法是对于在js文件中出现汉字中文,以及其他容易造成在GBK与UTF-8编码错误字符的时候使用,

    注:Web页面和js文件最好是使用同一种编码,对于纯英文的就不需要了,如果编码已经统一,引入的js文件中文依然乱码,则加入charset=”″声明就好。

    javascript中的3个编码函数

       escape/unescape

        除了ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码;

        因此如果想对URL编码,最好不要使用此方法;

        escape()适合对url的参数进行编码。

      encodeURI/decodeURI

      用于编码整个URL,因为URL中的合法字符都不会被编码转换;

        进行url跳转时可以整体使用encodeURI。

        例如:Location.href=encodeURI("http://www.XX.com/Product/ProductShow.aspx?pid=468&SecondClass=35");

      encodeURIComponent/decodeURIComponents

        对url的参数编码,特别在参数也是一个url的情况,如果不编码会影响整个url跳转。

        例如:document.write('<a href="http://passport.baidu.com/?logout&aid=7&

        u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');

        在向后端传值时,参数存在特殊字符时,我们一般使用这种编码方法

  • 相关阅读:
    加法的位运算实现
    C++装饰器模式
    字符串类型的相互转换
    手算CRC及其实现
    Linux下搭建C/C++编程环境
    Deepin Linux 实体机安装
    Atom + Texlive 配置 Latex 环境
    有关字符串的算法(KMP,Manacher,BM)陆续补充
    Linux 下大文件分割与合并
    Ubuntu /目录满,发现是docker image 太多解决办法
  • 原文地址:https://www.cnblogs.com/v10258/p/3064243.html
Copyright © 2011-2022 走看看