/**
*?將文本消息轉換成Xml
*
*
*/
public?static?String?messageToXml(TextMessage?msg)?{
DocumentBuilder?documentBuilder?=?getDocumentBuilder();
Document?document?=?documentBuilder.newDocument();
document.setXmlStandalone(true);
Element?root?=?document.createElement("xml");
Element?toUsername?=?document.createElement("ToUserName");
toUsername.setTextContent(msg.getToUserName());
root.appendChild(toUsername);
Element?FromUserName?=?document.createElement("FromUserName");
FromUserName.setTextContent(msg.getFromUserName());
root.appendChild(FromUserName);
Element?CreateTime?=?document.createElement("CreateTime");
CreateTime.setTextContent(msg.getCreateTime());
root.appendChild(CreateTime);
Element?MsgType?=?document.createElement("MsgType");
MsgType.setTextContent(msg.getMsgType());
root.appendChild(MsgType);
Element?Content?=?document.createElement("Content");
Content.setTextContent(msg.getContent());
root.appendChild(Content);
Element?MsgId?=?document.createElement("MsgId");
MsgId.setTextContent(msg.getMsgId());
root.appendChild(MsgId);
document.appendChild(root);
TransformerFactory?tf?=?TransformerFactory.newInstance();
Transformer?t;
ByteArrayOutputStream?bos?=?null;
String?result?=?null;
try?{
t?=?tf.newTransformer();
t.setOutputProperty("encoding",?"UTF8");//?解決中文問題
bos?=?new?ByteArrayOutputStream();
t.transform(new?DOMSource(document),?new?StreamResult(bos));
result?=?bos.toString("utf8");//?解決中文問題
}?catch?(TransformerConfigurationException?e1)?{
e1.printStackTrace();
}?catch?(TransformerException?e)?{
e.printStackTrace();
}?catch?(UnsupportedEncodingException?e)?{
e.printStackTrace();
}
return?result;
}
public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;?charset=utf-8");
PrintWriter?out?=?response.getWriter();
Map<String,?String>?map?=?MessageUtil.XmlToMap(request);
TextMessage?msg?=?new?TextMessage(map);
// System.out.println(msg.toString());
if?("text".equals(msg.getMsgType()))?{
TextMessage?sendMsg?=?new?TextMessage();
sendMsg.setContent("你才:"?+?msg.getContent());
sendMsg.setCreateTime(new?Date().getTime()?+?"");
sendMsg.setFromUserName(msg.getToUserName());
sendMsg.setToUserName(msg.getFromUserName());
sendMsg.setMsgId(msg.getMsgId());
sendMsg.setMsgType("text");
String?msgString?=?MessageUtil.messageToXml(sendMsg);
out.println(msgString);
System.out.println(msgString);
out.flush();
}
2015-07-31
亂碼問題解決?
我使用的是spring mvc ? ??
return new String(re.getBytes("utf-8"),"ISO8859_1"); 就顯示中文了.
2015-07-25
是不是還少了getDocumentBuilder方法,這段代碼加進去以后調不通啊~!求完整代碼包~
2015-07-23
還要注意一點....java文件字符編碼也要設置成utf8