zoukankan      html  css  js  c++  java
  • Ajax乱码

    1:文本的GET乱码解决

    1:客户端发送数据,服务端的处理:

    A:server.xml中配置URLEncoding="GBK";

    B:软编码 username = new String(username.getBytes("ISO-8859-1"),"GBK");

    2:客户端接收数据

    服务端设置response.setCharaceterEncoding("GBK");

    2:文本的POST乱码解决:

    1:客户端发送数据,服务端的处理:

    A:服务端使用UTF-8编码。request.setCharaceter("UTF-8");

    B:服务端使用GBK编码

    客户端要编码2次,
    param = encodeURI(param);
    param = encodeURI(param);
    服务端解码2次

    第一次:request.getParameter()中的GBK解码一次。

    第二次:使用java.net.URLDecode.decode再解码一次。

    2:客户端接收数据

    服务端设置response.setCharaceterEncoding("GBK"); 或者UTF-8都可以。


    3:XML的发送

    XML的发送只有POST方式。没有GET方式。

    1:客户端发送数据,服务端的处理:

    A:服务端使用UTF-8编码。request.setCharaceter("UTF-8");

    B:服务端使用GBK编码

    客户端只需要将中文的字符进行编码一次,
    var dept_1 = encodeURI("开发部");
    var dept_2 = encodeURI("市场部");
    var xmlContent = "<deptRoot>";
    xmlContent = xmlContent + "<dept id="1">";
    xmlContent = xmlContent + "<deptname>"+dept_1+"</deptname>";
    xmlContent = xmlContent + "<manager>admin</manager>";
    xmlContent = xmlContent + "</dept>";


    xmlContent = xmlContent + "<dept id="2">";
    xmlContent = xmlContent + "<deptname>"+dept_2+"</deptname>";
    xmlContent = xmlContent + "<manager>test</manager>";
    xmlContent = xmlContent + "</dept>";
    xmlContent = xmlContent + "</deptRoot>";
    服务端解码1次

    request.getReader()本身并没有一次解码的操作,只是获取流的数据。因此,服务

    端只需要解码一次。
    String deptName = element.elementText("deptname");
    deptName = java.net.URLDecoder.decode(deptName, "UTF-8");


    4:返回XML数据的2种方式。

    A:字符串拼凑

    B:让DOM4J生成XML串, 然后发送给客户端,不需要设置XML的头部信息。

    2:客户端接收数据

    服务端设置response.setCharaceterEncoding("UTF-8"),直接返回XML即可。

    服务端设置response.setCharaceterEncoding("GBK"),必须设置XML的头部信息。
    xmlResult.append("<?xml version="1.0" encoding="GBK"?>");


  • 相关阅读:
    [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程
    [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程
    [笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程
    [笔记] Ubuntu 18.04安装cuda 10及cudnn 7流程
    [笔记]Win10下编译Tesseract-OCR 4.0
    [笔记]Python中模块互相调用的例子
    [笔记]mosh使用笔记
    [笔记]Delphi 2007写DLL供VC调用实例
    [笔记]Python的调试器pudb简易教程
    [笔记] Ubuntu下编译ffmpeg+openh264+x264
  • 原文地址:https://www.cnblogs.com/ziq711/p/6295143.html
Copyright © 2011-2022 走看看