<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    您好朋友,感謝您關(guān)注xiaosilent,我在blogjava的博客已經(jīng)停止更新,請(qǐng)?jiān)L問http://kuan.fm了解我的最新情況,謝謝!
    隨筆-82  評(píng)論-133  文章-0  trackbacks-0

    數(shù)據(jù)庫的亂碼問題,一直都相當(dāng)惱人,不過,要解決起來,其實(shí)也還是比較容易……

    首先,需要設(shè)定數(shù)據(jù)庫的編碼,也就是要在數(shù)據(jù)庫連接字串里面設(shè)置好編碼:
    url=jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8
    在建立數(shù)據(jù)庫連接的時(shí)候,再指定用戶名和密碼就可以了。

    隨后,需要在數(shù)據(jù)庫和數(shù)據(jù)表里都設(shè)定好編碼:
    CREATE DATABASE `db` /*!40100 DEFAULT CHARACTER SET utf8 */;
    USE `db`;

    CREATE TABLE `user` (
    ? `id` int(11) NOT NULL auto_increment,
    ?? `username` char(20) default NULL COMMENT '用戶名',
    ?? `password` char(20) default NULL COMMENT '密碼',
    ? PRIMARY KEY? (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;



    最后是設(shè)定JSP文件的編碼,
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");

    或者是用個(gè)Filter:

    import ?java.io.IOException;

    import ?javax.servlet.Filter;
    import ?javax.servlet.FilterChain;
    import ?javax.servlet.FilterConfig;
    import ?javax.servlet.ServletException;
    import ?javax.servlet.ServletRequest;
    import ?javax.servlet.ServletResponse;

    /**
    ?*?字符編碼過濾器
    ?*?
    ?*?
    @author ?xiaosilent.
    ?*?
    ?
    */
    public ? class ?CharacterEncodingFilter? implements ?Filter?{

    ????
    protected ?FilterConfig?filterConfig;

    ????
    private ?String?targetEncoding? = ? " UTF-8 " ;

    ????
    /**
    ?????*?初始化過濾器,獲取初始化參數(shù),如果沒有設(shè)定則使用默認(rèn)的UTF-8編碼.
    ?????
    */
    ????
    public ? void ?init(FilterConfig?config)? throws ?ServletException?{

    ????????
    this .filterConfig? = ?config;

    ????????
    // ?如果在web.xml里定義了編碼,則獲取,否則使用默認(rèn)的UTF-8.
    ???????? if ?(config.getInitParameter( " encoding " )? != ? null )?{

    ????????????
    this .targetEncoding? = ?config.getInitParameter( " encoding " );
    ????????}

    ????}

    ????
    public ? void ?doFilter(ServletRequest?request,?ServletResponse?response,
    ????????????FilterChain?chain)?
    throws ?IOException,?ServletException?{

    ????????request.setCharacterEncoding(targetEncoding);
    ????????response.setCharacterEncoding(targetEncoding);

    ????????chain.doFilter(request,?response);

    ????}

    ????
    public ? void ?destroy()?{

    ????????filterConfig?
    = ? null ;

    ????}

    }
    在web.xml里加入:? <filter>
    ? ?? ?<filter-name>CharacterEncodingFilter</filter-name>
    ? ?? ?<filter-class>xiao.cms.filter.CharacterEncodingFilter</filter-class>
    ? </filter>
    ? <filter-mapping>
    ? ?? ?<filter-name>CharacterEncodingFilter</filter-name>
    ? ?? ?<url-pattern>/*</url-pattern>
    ? </filter-mapping>
    這里使用的是UTF-8,所以沒有指定參數(shù),如果用非UTF-8編碼,指定一個(gè)名為encoding的參數(shù)即可.


    經(jīng)過這樣三個(gè)步驟,就不存在亂碼問題了。

    另,不推薦用 MySQL-Front 這個(gè)客戶端程序管理UTF-8編碼的數(shù)據(jù)庫。如果是GBK編碼還可以考慮,UTF-8則會(huì)出現(xiàn)編碼問題,導(dǎo)致程序不能正常工作,強(qiáng)烈推薦 Navicat 。 功能強(qiáng)大,默認(rèn)使用UTF-8編碼,界面友好、美觀。

    posted on 2007-01-17 20:55 xiaosilent 閱讀(807) 評(píng)論(0)  編輯  收藏 所屬分類: Java相關(guān)
    主站蜘蛛池模板: 99久久这里只精品国产免费| 三级片免费观看久久| 亚洲精品视频免费看| 久久精品7亚洲午夜a| 亚洲精品无码不卡在线播放HE| 亚洲色欲久久久综合网东京热 | 深夜a级毛片免费无码| 久久精品国产亚洲AV| 久久精品国产亚洲av品善| 黄页网站在线观看免费| 新最免费影视大全在线播放| 一级午夜a毛片免费视频| 丁香花在线观看免费观看图片 | 免费国产va在线观看| 日韩电影免费在线观看网址| sss在线观看免费高清| a级毛片毛片免费观看久潮喷| 成在人线av无码免费高潮喷水| 99re6免费视频| 国产免费久久精品99re丫y| 女人让男人免费桶爽30分钟| 四虎永久成人免费影院域名| 亚洲精品国产成人影院| 亚洲国产精品无码一线岛国| 亚洲国产老鸭窝一区二区三区| 亚洲精品视频观看| 亚洲熟妇丰满xxxxx| 日韩在线观看免费| 国产午夜精品免费一区二区三区| 99re6在线精品视频免费播放| 特级做A爰片毛片免费69 | 国内精品免费视频精选在线观看| 99热免费在线观看| 全免费a级毛片免费**视频| 五月天婷亚洲天综合网精品偷| 亚洲精品成人片在线播放| 激情内射亚洲一区二区三区| 亚洲依依成人亚洲社区| 成人福利在线观看免费视频| 嫩草影院在线播放www免费观看| 免费观看AV片在线播放|