GET请求中关于中文的编码与解码

问:有时候在特殊情况下,需要使用GET请求来传递参数,而传递的参数中有中文字符。如何直接传递过去,会导致乱码问题,针对这个情况如何解决?

原因:在使用get请求传递参数时,需要依赖浏览器环境,由于我们在javascript中没有做任何操作,完全依赖浏览器进行编码后传递到后台,一旦于后台编码格式不一样,就会出现乱码。

答:

1 在javascript中使用encodeURI()方法进行编码。

在java后台使用 new String(str.getBytes("iso8859-1"),"UTF-8")方法来进行解码。

2 在javascript中使用encodeURI(encodeURI(str))进行编码。

在java中使用URLDecoder.decode(str, "utf-8")进行解码。

为什么这里要进行二次编码?

利用encodeURI()在javascript中对中文URL参数进行编码时,会和转义字符冲突,浏览器会将编码后的字符分开。会造成与原来的编码不符。第二次编码浏览器会将第一次转义的编码在转义过来,这样就和原来编码的数据一致了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,267评论 0 4
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,610评论 1 45
  • 1.spite n.恶意,怨恨,不顾 vt.刁难,欺侮 in spite of The nei...
    静静等待的小丸子阅读 598评论 0 0
  • 阿秭和妈妈回家,说好了自己走,不要妈妈抱,可是好累。 走着走着,阿秭看到了春天,春天还很小呢,调皮的露着一点点的头...
    稔容阅读 487评论 0 1