new String(str.getBytes("iso-8859-1"),"GB2312");
解决通过URL?name=大洒洒洒洒的问题

解决方案 »

  1.   

    在你获取“存储到数据库的值”的前面加上request.setCharacterEncoding("GB2312");
    在代码最后面加上 response.setCharacterEncoding("GB2312");     就可以了,我也遇到过这个问题。
      

  2.   

    request.setCharacterEncoding("GB2312");
    读出数据不用转换,加上上面的应该就可以。
      

  3.   

    request.setCharacterEncoding("GB2312");
      

  4.   

    页面编码是"gb2312"
    我加上request.setCharacterEncoding("GB2312");
    也不行呀
      

  5.   

    jsp顶部是<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
      

  6.   

    我的jsp页面如下,麻烦大家帮我看看
    <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%><html>
      <head>
        <title>My JSP '1.jsp' starting page</title>
      </head>
      
      <body>
        <%
            Connection con=null;
    Statement stmt=null;
    ResultSet rs=null;
    String sql="";
    String xy="理学院";
    String bynf="2006";
    //request.setCharacterEncoding("gb2312");
     
        sql="select taizhang2.姓名,taizhang2.身份证 from biyes,taizhang2 where biyes.身份证号=taizhang2.身份证 and 院系所 like '%"+xy+"%'and taizhang2.毕业年份='"+bynf+"'"; 
        try{
        Class.forName("com.mysql.jdbc.Driver").newInstance();//加载驱动程序
        String url="jdbc:mysql://localhost:3306/dhgl";     
        con=DriverManager.getConnection(url,"root","root");     //建立连接
        System.out.println("数据库连接成功,准备插入数据......"); 
        stmt=con.createStatement();
        rs=stmt.executeQuery(sql);
        ResultSetMetaData statName= rs.getMetaData();
        for(int j=1;j<=statName.getColumnCount();j++)
        {
           String tmpstr=statName.getColumnName(j);
           tmpstr=new String(tmpstr.getBytes("ISO-8859-1"),"GB2312");
           out.println(tmpstr+"<br/>");
           //out.println(statName.getColumnName(j)+"<br/>");
        } 
        }
        catch(ClassNotFoundException ce)
    { System.out.println(ce); }
    catch(SQLException se)
    { System.out.println(se); } 
    catch(Exception e)
    { System.out.println(e); } %>
      </body>
    </html>
      

  7.   

    加上response.setCharacterEncoding("GB2312"); 看看怎样,可以测试下页面传递是否能传中文!
      

  8.   

    加个 <%request.setCharacterEncoding("GB2312");%>
    应该就可以。
      

  9.   

    mysql5.0是不可以的.
    建库时.建表时都要加默认。。GBK编码
      

  10.   

    我的mysql是5.0
    安装数据库时默认编码是gb2312,数据表中的中文都可以正常显示,数据库应该没问题。
      

  11.   

    我在建库建表时没加默认,可都可以读出表中的中文字段,偏偏只有表头读出乱码?
    是不是建库时.建表时都要加默认。。GBK编码
    表头才能正常显示??可可以读出表中的中文字段?
    奇怪了!
      

  12.   

    做广告,看了疗效再说信不信:http://blog.csdn.net/liltos/archive/2007/04/09/1557878.aspx
    昨天刚写的编码问题。。
      

  13.   

    <%@ page language="java" import="java.sql.*" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
    文件编码为ANSI 非UTF8
      

  14.   

    <%@ page language="java" import="java.sql.*" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
    文件编码为ANSI 非UTF8
    这样做,还是乱码?
      

  15.   

    首先mysql数据库的编码 设置为GB2312
    然后数据库连接这里
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName?useUnicode=true&characterEncoding=GB2312","root",""); 如过是通过GET方法传递的参数如:url ../test.jsp?v=汉字
    的话  应该把汉字转化成 UTF-8的编码在传过去[URLEncoder.encode("汉字","GB2312")]
    取的时候在转化回来
    如果是tomcat的话 在server.xml 的
    <Connector 
    port="8080" 
    中加入
    URIEncoding="GB2312"
    最好在写个 过滤器
      

  16.   

    我直接在jsp中读取数据库中的字段的,所以不用考虑get的问题
    mysql数据库的编码 设置为GB2312
    tomcat在server.xml 的
    <Connector 
    port="8080" 
    中加入
    URIEncoding="GB2312"可还没有成功,我再写个过滤器吧。
    我昨天也写了过滤器,在web.xml中也配置了,可还没成功。
    是不是在程序中要应用?
      

  17.   

    那是一个漆黑的夜晚….
    此乱码问题已解决。历时40多天,寻求解决方案的足迹已遍布大江南北,e….总的来说,没有翻不过去的山,只要注意自己脚下的路就好了。百度,Google上的解决方案也满天飞了,按照上面的配置修改了以后,还是不行。今天,终于找到原因所在:不是解决方案不行,是我疏忽了其中没有提到一个文件。唉,还是自己的知识不足阿,导致疏忽…。是一个自定义标签,显示数据用的。我是直接Copy过来的,没详细看内容….其中用了编码转换。我是在做第四遍的时候发现的e…把它删了,就OK了….环境:
    WindowsXP中文
    Eclipse3.2.1+Myeclipse5.1.0GA
    Tomcat5.5
    JDK1.5.0
    Hibernate3.1
    Mysql5.0+ mysql-connector-java-5.0.4-bin.jar方案:
    1.集成开发环境Eclipse中设置文本文件存储编码为UTF-8。
    //我想是因为….如果所做工程项目最终要在别的版本操作系统的服务器上跑,这里需要设置(未经证实)
    2.数据库mysql,默认编码使用utf8;
    并且创建数据库时在语句后面追加DEFAULT CHARSET=utf8;set names utf8;
    //如果数据库默认编码是utf8,那这个也不是必需的吧(未经证实)
    3.跟数据库连接的URL:Hibernate URL:
    jdbc:mysql://127.0.0.1:3306/addressbook?useUnicode=true&characterEncoding=utf8
    //如果数据库默认编码是utf8,那这个也不是必需的吧(未经证实)
    4.使用过滤器,过滤器文件代码见后面附1。
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>org.biti.filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
     </filter>
     <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
     </filter-mapping>
    //过滤的是post还是get还没弄明白,据说只过滤器中一个,另一个见5。
    5.修改Tomcat配置文件server.xml中Connector部分
    <Connector port="80"               
    maxHttpHeaderSize="8192"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" />
    加入URIEncoding="UTF-8"一项。
    //我现在这个没乱码的就没有设置….
      

  18.   

    以上是UTF-8解决乱码的方法,仅供参考
      

  19.   

    request.setCharacterEncoding("GB2312");
      

  20.   

    <%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312" %>
    <% request.setCharacterEncoding("gb2312");