UTF-8编码,在中文的情况下为什么有时是正常的有时是不行的为什么会这样阿!
谁能解释一下!

解决方案 »

  1.   

    xslt理加上<xsl:output encoding="gb2312"/>
      

  2.   

    xslt理加上<xsl:output encoding="gb2312"/>
    加上上面的编码后输出到标准输出是正确的中文!

    PrintWriter out =response.getWriter();StreamResult result = new StreamResult(out);
    transformer.transform(source, result);
    以上是乱码
    result = new StreamResult(System.out);
    transformer.transform(source, result);
    这儿正确应怎样解决
    在servlet里面输出还是乱码???
      

  3.   

    在servlet里
    response.setContentType("text/html; charset=gb2312");
      

  4.   

    在servlet里
    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);
    在帮着看看
      

  5.   

    这个jsp中文你的能出来否?
    <%@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\">  &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;.</Species>"
     + "\n            <Species Scientific_Name=\"Nothocercus\">&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus soui\">Little&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;Tinamou.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus cinnamomeus\">&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; Tinamou.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus boucardi\">Slaty-&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; Tinamou.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus kerriae\">Choco &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;.</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&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;:  <xsl:value-of select=\"@Name\"/>"
     + " <xsl:apply-templates select=\"Family\"/><xsl:text>"
     + "</xsl:text>"
     + "</xsl:template>"
     + "<xsl:template match=\"Family\">"
     + " &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; is:  <xsl:value-of select=\"@Name\"/>"
     + " <xsl:apply-templates select=\"Species | SubFamily | text()\"/>"
     + "</xsl:template>"
     + "<xsl:template match=\"SubFamily\">"
     + " &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; 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));
    %>
      

  6.   

    怎么贴出来乱码,呵呵
    <%@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));
    %>
      

  7.   

    Order is中文中文: TINAMIFORMES 中文中文 is: TINAMIDAE 中文中文中文中文中文中文 中文中文. Tinamus major 中文中文 中文中文. Nothocercus Little中文中文Tinamou. Crypturellus soui 中文中文 Tinamou. Crypturellus cinnamomeus Slaty-中文中文 Tinamou. Crypturellus boucardi Choco 中文中文. Crypturellus kerriae 你正常显示
      

  8.   

    Order is????: TINAMIFORMES ???? is: TINAMIDAE ???????????? ????. Tinamus major ???? ????. Nothocercus Little????Tinamou. Crypturellus soui ???? Tinamou. Crypturellus cinnamomeus Slaty-???? Tinamou. Crypturellus boucardi Choco ????. Crypturellus kerriae 
    但放到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));
      

  9.   

    用OutputStreamimport java.io.*;
    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\">  &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;.</Species>"
     + "\n            <Species Scientific_Name=\"Nothocercus\">&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus soui\">Little&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;Tinamou.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus cinnamomeus\">&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; Tinamou.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus boucardi\">Slaty-&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; Tinamou.</Species>"
     + "\n            <Species Scientific_Name=\"Crypturellus kerriae\">Choco &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;.</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&Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml;:  <xsl:value-of select=\"@Name\"/>"
     + "    <xsl:apply-templates select=\"Family\"/><xsl:text>"
     + "</xsl:text>"
     + "</xsl:template>"
     + "<xsl:template match=\"Family\">"
     + "    &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; is:  <xsl:value-of select=\"@Name\"/>"
     + "    <xsl:apply-templates select=\"Species | SubFamily | text()\"/>"
     + "</xsl:template>"
     + "<xsl:template match=\"SubFamily\">"
     + "        &Ouml;&ETH;&Icirc;&Auml;&Ouml;&ETH;&Icirc;&Auml; 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();
          }    }
    }
      

  10.   

    怎么贴出来总有问题,呵呵。import java.io.*;
    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();
          }    }
    }