首页 > 代码库 > 解决js输出汉字乱码的问题

解决js输出汉字乱码的问题

最近做安卓开发,安卓客户端调用服务器页面,但是服务器编码为gbk,安卓编码为utf-8,导致js输出内容报错,前期的做法是调整js文件编码,但是会生成两个版本,很不方便,最后找到对汉字进行转码的形式进行解决。其中js对汉字转吗的函数有encodeURI、encodeURIComponent、escape。下面做一下简单介绍。

1、encodeURI和decodeURI

        [1]语法:encodeURI(string)、decodeURI(string)
[2]说明:decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。其中加密值为:其中的十六进制转义序列将被它们表示的字符替换。
[3]案例:

<script type="text/javascript">

var test1="http://www.w3school.com.cn/My first/"

document.write(encodeURI(test1)+ "<br />")
document.write(decodeURI(test1))

</script>
2、encodeURIComponent和decodeURIComponent

        [1]语法:encodeURIComponent(string)、decodeURIComponent(string)
[2]说明:decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。其中加密值为:其中的十六进制转义序列将被它们表示的字符替换。
[3]案例:

<script type="text/javascript">

var test1="http://www.w3school.com.cn/My first/"

document.write(encodeURI(test1)+ "<br />")
document.write(decodeURI(test1))

</script>
3、escape和unescape

[1]语法:escape(string)、unescape(string)
[2]说明:unescape() 函数可对通过 escape() 编码的字符串进行解码。
[3]案例:

<script type="text/javascript">

var test1="Visit W3School!"

test1=escape(test1)
document.write (test1 + "<br />")

test1=unescape(test1)
document.write(test1 + "<br />")

</script>

解决js输出汉字乱码的问题