先贴出代码、再描述问题。
客户端javascript代码 var xmlDoc = new ActiveXObject('MSXML2.DOMDocument');
  xmlDoc.async = false;
  xmlDoc.loadXML("<?xml version='1.0' encoding='GBK'?><MyXML/>");
  var xmlRoot = xmlDoc.documentElement;
  var xmlNodeGrp, xmlNode, xmlNode2;
  xmlRoot.setAttribute("id", "izazady");
  xmlRoot.setAttribute("text","哦买噶的");//
    var xmlNodeGrp = xmlDoc.createNode(1,"brocs",""); 
  
  xmlRoot.appendChild(xmlNodeGrp);    xmlNode = xmlDoc.createNode(1, "broc", "");
    xmlNode2 = xmlDoc.createNode(1, "BaseProperties", "");
    xmlNode2.setAttribute("id","123123");
    xmlNode2.setAttribute("text", "奥买噶的");
xmlNode.appendChild(xmlNode2);    xmlNodeGrp.appendChild(xmlNode);
  xmlNodeGrp = xmlDoc.createNode(1,"Stops",""); 
  xmlRoot.appendChild(xmlNodeGrp);    xmlNode = xmlDoc.createNode(1, "Stop", "");    xmlNode2 = xmlDoc.createNode(1, "BaseProperties", "");
    xmlNode2.setAttribute("id", "asdqwe");
    xmlNode2.setAttribute("text", "奥卖糕的");
    xmlNode.appendChild(xmlNode2);    xmlNodeGrp.appendChild(xmlNode);  var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//创建XmlHttp对象
  xmlHttp.open("POST", "saveMyXML.jsp?dedid=1234qwer", false);//使用该对象的open方法来发出一个http请求
  
  xmlHttp.setRequestHeader( "Content-Type ", "text/xml; charset=GBK"); //20110602添加
  xmlHttp.send(xmlDoc.xml);//发送xml数据信息saveMyXML.jsp代码:<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@page import="java.io.InputStream"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.FileWriter"%>
<%@page import="java.io.File"%>
<%@page import="java.io.BufferedWriter"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/"; response.setCharacterEncoding("GBK");
response.setContentType( "text/xml;charset=GBK");   
String dedid = request.getParameter("dedid").trim();//获取xml文件的ID 作为xml文件名使用
String realPath = config.getServletContext().getRealPath(
"data/" + dedid + ".xml");
System.out.println("要保存的路径是:" + realPath);
BufferedReader br = request.getReader();//获取xml文件字符流
File f = new File(realPath);//创建xml文件
FileWriter fw = new FileWriter(f);
BufferedWriter bw = new BufferedWriter(fw);
String line;
try {
while ((line = br.readLine()) != null) {
System.out.println("===========================");
System.out.println(line);
bw.write(line);
System.out.println("===========================");
bw.newLine();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
bw.close();
fw.close();
br.close();
}
%>问题描述:
在print出的结果中text值都是乱码,生成的xml用浏览器打不开,更重要的是xml文件中前后三个text的值的编码貌似不一样。
当我用浏览器打开生成的xml文件时,报出的错误是第二的text乱码,显示不出来,但是第一个text值能正常显示。
请教,这些乱码问题当如何解决?

解决方案 »

  1.   

    是不是没有转码的问题,需要把ISO-8859-1转为GBK的
      

  2.   

    您指的是bw.write(line);这里么?
    bw.write(new String(line.getBytes("iso-8859-1"),"gbk"));
    我试过了,不行。别的gb2312、utf-8、都试过了,而且是俩位置都试过了
      

  3.   

    这里面涉及到编码的 
    UTF-8、GBK、GB2312、ISO-8859-1等我都试过了、各种组合、各种试过
      

  4.   

    <globalization responseEncoding="utf-8" />
      

  5.   

    UTF-8不若GBK的、使用GBK时至少显示了一部分正常的汉字,而是用UTF-8是全是问号、
      

  6.   

    好久不用javascript拼XML了。。为啥不传到后台用java组装,效率高多了
      

  7.   

    好久不用javascript拼XML了。。为啥不传到后台用java组装,效率高多了