话说我在网页里post了一个字符串到servlet,字符串中包含中文。根据我所查资料,如果网页开头指定了编码,比如:<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 那么post时中文使用gb2312,否则使用utf-8。第一个问题:AJAX post字符串时是不是固定使用utf-8而不管网页所指定的编码?我在servlet里需要通过request.seCharacterEncoding("...")来指定编码,那么第二个问题就出来了:如何知道客户端POST数据时用的什么编码?智能判定?问写客户端网页的人?

解决方案 »

  1.   

    request.getCharacterEncoding();
    response.getCharacterEncoding();
    输入、输出的都可以获取
    一般ajax的post是不会乱码的吧
    只有get才乱码。get乱码用encodeUR编码2次传递到java后台再用
    URLDecoder.decode(param, "utf-8")去解码即可
      

  2.   

    我发现:
    还真得和前台人约定好,如果我jsp里指定了utf-8,那我一定要通知前台设计人员使用DW的时候,新建html务必选择utf-8初始项
      

  3.   

    request.getCharacterEncoding();
    response.getCharacterEncoding();还是统一用utf-8这个编码好用
      

  4.   

    一般前台使用utf-8编码,$.post()一般不会乱码,
    不过也可以通过
    name = new String(name.getBytes("iso-8859-1"),"utf-8");进行转码