熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

java連接mysql數據庫亂碼的解決方案

2013-11-15 12:05:42  來源: JSP教程 

  解決方法一:

  mysql安裝時候的編碼

  看下myini有無

  [mysql]

  defaultcharacterset=utf

  [client]
defaultcharacterset=utf

  [mysqld]
defaultcharacterset=utf創建表的時候設置

  DROP   TABLE   IF   EXISTS   `Company`;
CREATE   TABLE   IF   NOT   EXISTS   `Company`
(
    `Cname`   VARCHAR()   NOT   NULL
    `Caddr`   VARCHAR()
    `Ctel`     VARCHAR()
)ENGINE=InnoDB   DEFAULT   CHARSET=UTF; jsp標頭

  <%@ page language="java" import="javautil*" pageEncoding="UTF"%>不行的話就嘗試

  contentType="text/html;charset=gb" 解決方法二

  連接mysql時(無論在從mysql讀還是取數據的情況)指定使用的編碼方式為utf具體代碼如下

  //裝載mysqljdbc驅動

  ClassforName("commysqljdbcDriver")newInstance();

  //連接數據庫

  Connection sqlCon = DriverManagergetConnection( "jdbc:mysql://localhost:/test?user=root&password=&useUnicode=true&characterEncoding=utf" ); 解決方法三

  如果方法一不行那麼在方法一的基礎上對讀入的字符串進行強制編碼方式轉換

  String name = requestgetParameter("name");
name= new String(namegetBytes("ISO")"utf"); 或者

  String name =new String( rstgetString("name")getBytes("ISO")"utf"));解決方法四

  這個方法在有些文章裡是首推的我首先也是試了這個方法但是好像不行這裡還是說一下不知是不是我操作錯誤還是先貼原文吧

  "如果數據庫中有中文的話而mysql默認的語言不是中文時要在配置文件C:winntmyini 中的 [mysqld] 裡添加一行

  defaultcharacterset=utf

  然後重起mysql

  方法五在tomca或者web項目下的webxml裡面更改

  <filter>  
<filtername>UTFEncoding</filtername>
     <filterclass>comfounderchenphUtilEncodingFilter_UTF

  </filterclass>  
          <initparam>  
              <paramname>encoding</paramname>  
              <paramvalue>UTF</paramvalue>  
          </initparam>  
</filter>  
          <filtermapping>  
          <filtername>UTFEncoding</filtername>  
          <urlpattern>*jsp</urlpattern>  
      </filtermapping>  
      <filtermapping>  
          <filtername>UTFEncoding</filtername>  
          <urlpattern>*do</urlpattern>  
      </filtermapping>


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20273.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.