zoukankan      html  css  js  c++  java
  • 字符窜提交时的乱码

    关于escape和encodeURI:

    在使用url直接提交中文内容时,如下:

    var content = '这是测试内容'
    var url = '/encodeTest.do?content='+escape(content)
    document.form1.method = 'post'
    document.form1.action = url
    document.form1.submit()

    采用以上方式提交内容时,服务器端(Java)获取内容:

    String content = request.getParameter('content')

    此处会有异常抛出:

    Code

    引发该异常的原因在于使用了escapse(为什么是它呢?不太清楚)

    解决方案:

    var content = '这是测试内容'
    var url = '/encodeTest.do?content='+encodeURI(encodeURI(content))

    //注意,这里的encodeURI连续使用了两次
    document.form1.method = 'post'
    document.form1.action = url
    document.form1.submit()

    在服务器端获取内容时,则需要使用java.net.URLDecoder来解码了。注意解码时使用的编码!根据具体的应用还要做不同的调整。如果之前使用了request.setCharacterEncoding("GBK")对编码进行设置,那么在解码的时候,可能要将编码重新转为UTF-8:request.setCharacterEncoding("UTF-8");
    String content= java.net.URLDecoder.decode(note,"UTF-8");
  • 相关阅读:
    java线程池实践
    JAVA中间件(middleware)模式
    [开源]制作docker镜像不依赖linux和Docker环境
    利用浏览器favicon的缓存机制(F-Cache)生成客户端浏览器唯一指纹
    Docker镜像构建原理解析(不装docker也能构建镜像)
    ORM框架对分表分库之分库和分表指定不同的字段
    volatile的内存屏障的坑
    go和python的比较,获取当前时间是今年第几个星期
    c++学生管理系统
    c++学生管理系统(三)
  • 原文地址:https://www.cnblogs.com/ungshow/p/1439425.html
Copyright © 2011-2022 走看看