UTF-8编码,在中文的情况下为什么有时是正常的有时是不行的为什么会这样阿!
谁能解释一下!
谁能解释一下!
解决方案 »
- 大仙帮我看看这个错误啊,网上找不到的错误额。。。。。
- 写出你所知道的java框架
- getCurrentSession()和getSession()的区别?
- 在线等哪个老师帮我解决这个异常:
- 向数据库添加商品总是报异常,不知道代码哪错了
- STRING怎么判断是否是uniqueidentifier GUID(MSSQL)数据类型的形式?
- 两个系统(J2EE)之间做一个类似于单点登录的功能
- JTable 绑定数据库后动态增加列的问题,急,请高手看看
- 问一个Axis的中文问题
- a question about deploying a simple bean in deploytool of j2eesdk
- jb6 weblogin61 sp2 写的Entity ejb2.0 (cmp)遇到以下问题?
- 如何部署j2ee的数据库设置?
加上上面的编码后输出到标准输出是正确的中文!
但
PrintWriter out =response.getWriter();StreamResult result = new StreamResult(out);
transformer.transform(source, result);
以上是乱码
result = new StreamResult(System.out);
transformer.transform(source, result);
这儿正确应怎样解决
在servlet里面输出还是乱码???
response.setContentType("text/html; charset=gb2312");
response.setContentType("text/html; charset=gb2312");
我加过了还是不行!PrintWriter out=response.getWriter();
response.setContentType("text/xml ;charset=GB2312");
Document document;
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse("http://wind/egold/template/articleClass.xml");
// Use a Transformer for output
TransformerFactory tFactory =
TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource("http://wind/egold/xsl/articleClass.xsl");
Transformer transformer = tFactory.newTransformer(stylesource);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(out);
在帮着看看
<%@page contentType="text/xml; charset=gb2312"%>
<%@page import="javax.xml.transform.*, javax.xml.transform.stream.*, java.io.*"%>
<%
String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+ "\n<Class>"
+ "\n<Order Name=\"TINAMIFORMES\">"
+ "\n <Family Name=\"TINAMIDAE\">"
+ "\n <Species Scientific_Name=\"Tinamus major\"> ÖÐÎÄÖÐÎÄÖÐÎÄÖÐÎÄÖÐÎÄÖÐÎÄ ÖÐÎÄÖÐÎÄ.</Species>"
+ "\n <Species Scientific_Name=\"Nothocercus\">ÖÐÎÄÖÐÎÄ ÖÐÎÄÖÐÎÄ.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus soui\">LittleÖÐÎÄÖÐÎÄTinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus cinnamomeus\">ÖÐÎÄÖÐÎÄ Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus boucardi\">Slaty-ÖÐÎÄÖÐÎÄ Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus kerriae\">Choco ÖÐÎÄÖÐÎÄ.</Species>"
+ "\n </Family>"
+ "\n </Order>"
+ "\n</Class>"
+ "\n";
String xsl = "<?xml version=\"1.0\" encoding=\"gb2312\"?> "
+ "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"
+ " <xsl:output method=\"xml\" indent=\"yes\" encoding=\"gb2312\"/>"
+ "<xsl:template match=\"Class\">"
+ "<BirdInfo>"
+ " <xsl:apply-templates select=\"Order\"/>"
+ "</BirdInfo>"
+ "</xsl:template>"
+ "<xsl:template match=\"Order\">"
+ "Order isÖÐÎÄÖÐÎÄ: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Family\"/><xsl:text>"
+ "</xsl:text>"
+ "</xsl:template>"
+ "<xsl:template match=\"Family\">"
+ " ÖÐÎÄÖÐÎÄ is: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | SubFamily | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"SubFamily\">"
+ " ÖÐÎÄÖÐÎÄ is <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"Species\">"
+ " <xsl:choose>"
+ " <xsl:when test=\"name(..)='SubFamily'\">"
+ " <xsl:text> </xsl:text><xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:when>"
+ " <xsl:otherwise>"
+ " <xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:otherwise>"
+ " </xsl:choose>"
+ "</xsl:template>"
+ "</xsl:stylesheet>"; TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
t.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
%>
<%@page contentType="text/xml; charset=gb2312"%>
<%@page import="javax.xml.transform.*, javax.xml.transform.stream.*, java.io.*"%>
<%
String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+ "\n<Class>"
+ "\n<Order Name=\"TINAMIFORMES\">"
+ "\n <Family Name=\"TINAMIDAE\">"
+ "\n <Species Scientific_Name=\"Tinamus major\"> 中文中文中文中文中文中文 中文中文.</Species>"
+ "\n <Species Scientific_Name=\"Nothocercus\">中文中文 中文中文.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus soui\">Little中文中文Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus cinnamomeus\">中文中文 Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus boucardi\">Slaty-中文中文 Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus kerriae\">Choco 中文中文.</Species>"
+ "\n </Family>"
+ "\n </Order>"
+ "\n</Class>"
+ "\n";
String xsl = "<?xml version=\"1.0\" encoding=\"gb2312\"?> "
+ "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"
+ " <xsl:output method=\"xml\" indent=\"yes\" encoding=\"gb2312\"/>"
+ "<xsl:template match=\"Class\">"
+ "<BirdInfo>"
+ " <xsl:apply-templates select=\"Order\"/>"
+ "</BirdInfo>"
+ "</xsl:template>"
+ "<xsl:template match=\"Order\">"
+ "Order is中文中文: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Family\"/><xsl:text>"
+ "</xsl:text>"
+ "</xsl:template>"
+ "<xsl:template match=\"Family\">"
+ " 中文中文 is: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | SubFamily | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"SubFamily\">"
+ " 中文中文 is <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"Species\">"
+ " <xsl:choose>"
+ " <xsl:when test=\"name(..)='SubFamily'\">"
+ " <xsl:text> </xsl:text><xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:when>"
+ " <xsl:otherwise>"
+ " <xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:otherwise>"
+ " </xsl:choose>"
+ "</xsl:template>"
+ "</xsl:stylesheet>"; TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
t.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
%>
但放到servlet里面执行一下就成这样的了!如果编码的话应该在什么地方编码?
servlet里面的代码如下我用的是tomcat的4.03
你用的什么,不会出现问题吗? PrintWriter out=response.getWriter();
response.setContentType("text/html; charset=gb2312");
String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+ "\n<Class>"
+ "\n<Order Name=\"TINAMIFORMES\">"
+ "\n <Family Name=\"TINAMIDAE\">"
+ "\n <Species Scientific_Name=\"Tinamus major\"> 中文中文中文中文中文中文 中文中文.</Species>"
+ "\n <Species Scientific_Name=\"Nothocercus\">中文中文 中文中文.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus soui\">Little中文中文Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus cinnamomeus\">中文中文 Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus boucardi\">Slaty-中文中文 Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus kerriae\">Choco 中文中文.</Species>"
+ "\n </Family>"
+ "\n </Order>"
+ "\n</Class>"
+ "\n";
String xsl = "<?xml version=\"1.0\" encoding=\"gb2312\"?> "
+ "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"
+ " <xsl:output method=\"xml\" indent=\"yes\" encoding=\"gb2312\"/>"
+ "<xsl:template match=\"Class\">"
+ "<BirdInfo>"
+ " <xsl:apply-templates select=\"Order\"/>"
+ "</BirdInfo>"
+ "</xsl:template>"
+ "<xsl:template match=\"Order\">"
+ "Order is中文中文: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Family\"/><xsl:text>"
+ "</xsl:text>"
+ "</xsl:template>"
+ "<xsl:template match=\"Family\">"
+ " 中文中文 is: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | SubFamily | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"SubFamily\">"
+ " 中文中文 is <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"Species\">"
+ " <xsl:choose>"
+ " <xsl:when test=\"name(..)='SubFamily'\">"
+ " <xsl:text> </xsl:text><xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:when>"
+ " <xsl:otherwise>"
+ " <xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:otherwise>"
+ " </xsl:choose>"
+ "</xsl:template>"
+ "</xsl:stylesheet>"; TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
t.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
import javax.servlet.*;
import javax.servlet.http.*;import javax.xml.transform.*;
import javax.xml.transform.stream.*;/**
* The simplest possible servlet.
*
* @author James Duncan Davidson
*/public class ABC extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
try {
OutputStream out=response.getOutputStream();
String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+ "\n<Class>"
+ "\n<Order Name=\"TINAMIFORMES\">"
+ "\n <Family Name=\"TINAMIDAE\">"
+ "\n <Species Scientific_Name=\"Tinamus major\"> ÖÐÎÄÖÐÎÄÖÐÎÄÖÐÎÄÖÐÎÄÖÐÎÄ ÖÐÎÄÖÐÎÄ.</Species>"
+ "\n <Species Scientific_Name=\"Nothocercus\">ÖÐÎÄÖÐÎÄ ÖÐÎÄÖÐÎÄ.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus soui\">LittleÖÐÎÄÖÐÎÄTinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus cinnamomeus\">ÖÐÎÄÖÐÎÄ Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus boucardi\">Slaty-ÖÐÎÄÖÐÎÄ Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus kerriae\">Choco ÖÐÎÄÖÐÎÄ.</Species>"
+ "\n </Family>"
+ "\n </Order>"
+ "\n</Class>"
+ "\n";
String xsl = "<?xml version=\"1.0\" encoding=\"gb2312\"?> "
+ "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"
+ " <xsl:output method=\"xml\" indent=\"yes\" encoding=\"gb2312\"/>"
+ "<xsl:template match=\"Class\">"
+ "<BirdInfo>"
+ " <xsl:apply-templates select=\"Order\"/>"
+ "</BirdInfo>"
+ "</xsl:template>"
+ "<xsl:template match=\"Order\">"
+ "Order isÖÐÎÄÖÐÎÄ: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Family\"/><xsl:text>"
+ "</xsl:text>"
+ "</xsl:template>"
+ "<xsl:template match=\"Family\">"
+ " ÖÐÎÄÖÐÎÄ is: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | SubFamily | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"SubFamily\">"
+ " ÖÐÎÄÖÐÎÄ is <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"Species\">"
+ " <xsl:choose>"
+ " <xsl:when test=\"name(..)='SubFamily'\">"
+ " <xsl:text> </xsl:text><xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:when>"
+ " <xsl:otherwise>"
+ " <xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:otherwise>"
+ " </xsl:choose>"
+ "</xsl:template>"
+ "</xsl:stylesheet>"; TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
t.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
} catch (Exception e) {
e.printStackTrace();
} }
}
import javax.servlet.*;
import javax.servlet.http.*;import javax.xml.transform.*;
import javax.xml.transform.stream.*;/**
* The simplest possible servlet.
*
* @author James Duncan Davidson
*/public class ABC extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
try {
OutputStream out=response.getOutputStream();
String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+ "\n<Class>"
+ "\n<Order Name=\"TINAMIFORMES\">"
+ "\n <Family Name=\"TINAMIDAE\">"
+ "\n <Species Scientific_Name=\"Tinamus major\"> 中文中文中文中文中文中文 中文中文.</Species>"
+ "\n <Species Scientific_Name=\"Nothocercus\">中文中文 中文中文.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus soui\">Little中文中文Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus cinnamomeus\">中文中文 Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus boucardi\">Slaty-中文中文 Tinamou.</Species>"
+ "\n <Species Scientific_Name=\"Crypturellus kerriae\">Choco 中文中文.</Species>"
+ "\n </Family>"
+ "\n </Order>"
+ "\n</Class>"
+ "\n";
String xsl = "<?xml version=\"1.0\" encoding=\"gb2312\"?> "
+ "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">"
+ " <xsl:output method=\"xml\" indent=\"yes\" encoding=\"gb2312\"/>"
+ "<xsl:template match=\"Class\">"
+ "<BirdInfo>"
+ " <xsl:apply-templates select=\"Order\"/>"
+ "</BirdInfo>"
+ "</xsl:template>"
+ "<xsl:template match=\"Order\">"
+ "Order is中文中文: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Family\"/><xsl:text>"
+ "</xsl:text>"
+ "</xsl:template>"
+ "<xsl:template match=\"Family\">"
+ " 中文中文 is: <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | SubFamily | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"SubFamily\">"
+ " 中文中文 is <xsl:value-of select=\"@Name\"/>"
+ " <xsl:apply-templates select=\"Species | text()\"/>"
+ "</xsl:template>"
+ "<xsl:template match=\"Species\">"
+ " <xsl:choose>"
+ " <xsl:when test=\"name(..)='SubFamily'\">"
+ " <xsl:text> </xsl:text><xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:when>"
+ " <xsl:otherwise>"
+ " <xsl:value-of select=\".\"/><xsl:text> </xsl:text><xsl:value-of select=\"@Scientific_Name\"/>"
+ " </xsl:otherwise>"
+ " </xsl:choose>"
+ "</xsl:template>"
+ "</xsl:stylesheet>"; TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
t.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
} catch (Exception e) {
e.printStackTrace();
} }
}