先贴出代码、再描述问题。
客户端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值能正常显示。
请教,这些乱码问题当如何解决?
客户端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值能正常显示。
请教,这些乱码问题当如何解决?
bw.write(new String(line.getBytes("iso-8859-1"),"gbk"));
我试过了,不行。别的gb2312、utf-8、都试过了,而且是俩位置都试过了
UTF-8、GBK、GB2312、ISO-8859-1等我都试过了、各种组合、各种试过