jsp页面读取mysql的数据在页面上是乱码,我直接用Mysql工具查询出来的也是乱码,但是同事用VC做的东西就没问题;如果手动改数据库写成中文,我的不是乱码,VC做的却变成乱码  
 
  我试过修改Mysql根文件夹下的 My.ini文件,也没有用,useUnicode=true&characterEncoding=UTF-8 连接数据库的时候也做过处理了,大家有人知道是怎么回事吗?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【toojiang】截止到2008-07-19 11:58:55的历史汇总数据(不包括此帖):
    发帖的总数量:10                       发帖的总分数:240                      每贴平均分数:24                       
    回帖的总数量:9                        得分贴总数量:1                        回帖的得分率:11%                      
    结贴的总数量:7                        结贴的总分数:200                      
    无满意结贴数:2                        无满意结贴分:30                       
    未结的帖子数:3                        未结的总分数:40                       
    结贴的百分比:70.00 %               结分的百分比:83.33 %                  
    无满意结贴率:28.57 %               无满意结分率:15.00 %                  
    楼主加油
      

  2.   

    jsp里设置<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
    mysql也用UTF-8
    然后request.setCharacterEncoding("UTF-8");
    基本就应该没问题了
    要不行用过滤器试试
      

  3.   

    建议大家收藏下面这段
    (自己总结的MySql增删查改乱码的解决方法集合,就这些做到了 不会出现乱码的!)解决MySql数据乱码:  1 写过滤器设置编码格式(格式和JSP页面的编码一样),或则在请求里面写request.setCharacterEncoding("编码方式");  2 如果是查询出数据乱码,在链接的URL上加上编码格式(你这里加了,没问题);  3 修改my.ini文件里面的 default-character-set= 您要的编码格式 (一共有两处,你查找一下 改为一样的编码格式)  3 如果是写入到数据库之后是乱码(前提是已经写了过滤器处理编码),修改my.ini文件里面查找sql-mode 设置 sql-mode =   
      "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";  试试吧!    这是所有乱码的情况! 我用的是MYSQL5.0 解决乱码就这样搞的!!!!!!!
      

  4.   

    解决MySql数据乱码:  1 写过滤器设置编码格式(格式和JSP页面的编码一样),或则在请求里面写request.setCharacterEncoding("编码方式");  2 如果是查询出数据乱码,在链接的URL上加上编码格式(你这里加了,没问题);  3 修改my.ini文件里面的 default-character-set= 您要的编码格式 (一共有两处,你查找一下 改为一样的编码格式)  3 如果是写入到数据库之后是乱码(前提是已经写了过滤器处理编码),修改my.ini文件里面查找sql-mode 设置 sql-mode =  
      "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";  
      

  5.   

    characterEncoding
    把页面上的characterEncoding=“”全部换成characterEncoding="GBK"
      

  6.   

    看你的情况 建库的时候就出现问题了。。
    我一般都习惯在写sql脚本的时候添上数据库编码。这样比较保险
    界面显示要用utf-8就都改成这样的。
      

  7.   

    request.setCharacterEncoding("编码方式");  
      

  8.   

    建议双边统一用UTF8,要不然要各自设置编码方式,麻烦得很啊
      

  9.   

    修改my.ini文件里面的所有的default-character-set设置为gbk/gb2312等,同时在页面中要统一这种编码,实在还不行,再写个过滤器就可以了
      

  10.   

    建议写一个过滤器,把你的服务器,jsp,mysql的编码统一下!
    再次本人不推荐试用utf-8 在项目中编码全部用这个有的中文不是识别,会出现乱码
    改成GBK或GBK2312  个人意见!
      

  11.   

    你的mysql也应该用和项目相同的编码,比如utf-8.从你的问题来看应该是页面入库就是乱码了.你最好用过滤器过滤下所有的提交
      

  12.   

    所有的关于编码问题的设置(包括页面、链接数据库、数据库本身编码设置等)都设置成同一个就行了,建议使用UTF-8
      

  13.   

    解决MySql数据乱码:  1 写过滤器设置编码格式(格式和JSP页面的编码一样),或则在请求里面写request.setCharacterEncoding("编码方式");  2 如果是查询出数据乱码,在链接的URL上加上编码格式(你这里加了,没问题);  3 修改my.ini文件里面的 default-character-set= 您要的编码格式 (一共有两处,你查找一下 改为一样的编码格式)  3 如果是写入到数据库之后是乱码(前提是已经写了过滤器处理编码),修改my.ini文件里… 应该可以解决了
      

  14.   

    我以前也是这样,最后改成MS sql 2000了,不管行不,先收藏下..
      

  15.   

    用过滤器 import java.io.*;import javax.servlet.*;public class EncodingFilter implements Filter { public void destroy() {
    // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    try {
    request.setCharacterEncoding("GB2312");
    } catch (Exception e) {
    } chain.doFilter(request, response);
    } public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}
      

  16.   

    配置tomcat的配置文件server.xml里这句: 
    <Connector URIEncoding="GB2312" 
                   port="8080" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" />
     加上这句:URIEncoding="GB2312" 
      

  17.   

    在JSP文件中加入这段代码:
    <%
    String str; 
    byte strByte[] = str.getBytes(“UTF-8”); 
    return new String(strByte,“gb2312”); 
    %>或者在java文件中加入一个方法,在jsp页面来调用这个方法:
    public String toReverse(String str){
        byte strByte[] = str.getBytes(“UTF-8”); 
        return new String(strByte,“gb2312”);
    }
      

  18.   

    把所有的编码都改成utf8。非常的爽。网页用utf8。数据交互是用过滤器采用utf8数据库也用utf8。
      

  19.   

    在mysql里设置set names gbk;
      

  20.   

    谢谢大家热心帮助,我觉得现在的问题是这样,我现在本身用命令行查询数据库,查询出来的就是乱码,因为本身数据库的数据是用另一个软件写入的数据(不是java开发的),如果我手动把乱码改写成中文的,那么我在命令行里先运行一下 “set names GBK”或者“set names gb2312”是可以将我修改的显示成中文的,但是如果改成“set names utf8”则是乱码,不过不管我怎么set names ,原来的乱码都始终是乱码,我想如果连在命令行都不能让乱码正确解决,如何能在程序里正确显示?
      

  21.   

    你这个和我的一模一样,我的也是,入库的时候是乱码,我也搞不明白,我所有在编码的地方都是用的UTF-8,另一个虚拟主机也是同样的设置 就没有问题,不知道哪儿出问题了