nodejs后台乱码问题解决

来源:互联网 发布:淘宝买家申请小二介入 编辑:程序博客网 时间:2024/06/06 01:48

最近在学习nodejs,在web前端传参到后台时,发现中文乱码,我所有文件都是utf-8,html也指定了utf-8编码,但还是乱码。

google了一下,发现了这么两个函数encodeURIComponent(str),decodeURIComponent(str)。

在W3School上的解释如下:

定义和用法

decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

实例

在本例中,我们将使用 decodeURIComponent() 对编码后的 URI 进行解码:

<script type="text/javascript">var test1="http://www.w3school.com.cn/My first/"document.write(encodeURIComponent(test1)+ "<br />")document.write(decodeURIComponent(test1))</script>

输出:

http%3A%2F%2Fwww.w3school.com.cn%2FMy%20first%2Fhttp://www.w3school.com.cn/My first/
那么nodejs乱码的解决方法就很明了了。前端先用encodeURIComponent()进行编码,后台用decodeURIComponent()解码,就能得到正确的中文。

为什么要对URI进行编码再解码呢,其中一个原因就是我们现在遇到的问题,中文乱码,为什么会中文乱码,因为如果URI的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在URI中包含任何非ASCII字符,例如中文。否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成问题。

以上只是一个解决方法,不知是否有其他更好的方法


0 0