url=jdbc:mysql://localhost:3306/wyx?autoReconnect=true&characterEncoding=GB2312?
看看你的网页编码, 如果是GB2312的就改成GB2312,这两个好像应该对应起来

解决方案 »

  1.   

    网页的编码是UTF-8的,包括jsp的文件编码,都是UTF-8
      

  2.   

    那就是数据的编码不是utf-8的。这些必须一致。
      

  3.   

    数据库编码也是呀,因为之前用JDBC的时候,出现过乱码问题,我就把所有的编码都统一了,现在改成了sqlmap,插入的数据就是乱码!数据库为MYSQL,以下是见表脚本:
    CREATE TABLE `top_menu` (                         
                `id` varchar(32) NOT NULL DEFAULT '',           
                `name` varchar(32) NOT NULL DEFAULT '',         
                `link` varchar(32) NOT NULL DEFAULT '#',        
                `target` varchar(10) NOT NULL DEFAULT '_self',  
                `orders` int(5) NOT NULL DEFAULT '0',           
                `description` varchar(200) DEFAULT NULL,        
                `type` tinyint(2) NOT NULL DEFAULT '0',         
                `color` varchar(32) DEFAULT NULL,               
                `code` varchar(32) DEFAULT NULL,                
                PRIMARY KEY (`id`)                              
              ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    字段的“Collation”为:utf8_general_ci
      

  4.   

    你的SqlMapConfig就用来连数据库了?
    <sqlMap resource=""/>
    关联的**SqlMap.xml文件呢,看看里面的编码设置有没有对?还要看看关联的数据库的每个字段的类型是不是对了??
      

  5.   

    不是,这是整个sqlmap配置文件:<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
      "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
    <!-- Always ensure to use the correct XML header as above! -->
    <sqlMapConfig>
    <properties resource="com/wyx/common/database/SqlMapConfig.properties" />
    <settings
    cacheModelsEnabled="true"
    enhancementEnabled="true"
    lazyLoadingEnabled="true"
    maxRequests="32"
    maxSessions="10"
    maxTransactions="5"
    useStatementNamespaces="false"
    /> <transactionManager type="JDBC" >
    <dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="${driver}"/>
    <property name="JDBC.ConnectionURL" value="${url}"/>
    <property name="JDBC.Username" value="${username}"/>
    <property name="JDBC.Password" value="${password}"/>
    <property name="Pool.MaximumActiveConnections" value="10"/>
    <property name="Pool.MaximumIdleConnections" value="5"/>
    <property name="Pool.MaximumCheckoutTime" value="120000"/>
    <property name="Pool.TimeToWait" value="500"/>
    </dataSource>
    </transactionManager>

    <sqlMap resource="com/wyx/bean/TopMenu.xml" /></sqlMapConfig>
    TopMenu.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
     "http://www.ibatis.com/dtd/sql-map-2.dtd">
    <sqlMap namespace="TopMenu">
    <typeAlias alias="topMenu" type="com.wyx.bean.TopMenu"/>        <insert id="addMenu" parameterClass="topMenu" >
    INSERT INTO top_menu (id, name, color, link, target, orders, description, code)
    VALUES (#id#, #name#, #color#, #link#, #target#, #orders#, #description#, #code#)
    </insert>        <select id="listMenu" resultClass="topMenu" > 
                SELECT * FROM top_menu ORDER BY orders 
            </select>        <!-- 其他方法就省略了 -->
    怎么看关联的数据库的每个字段的类型呀?
      

  6.   

    谢谢,过滤器也配过了:
    SetEncodeFilter.javapublic class SetEncodeFilter implements Filter {
    protected FilterConfig filterConfig = null;    
        
        protected String defaultEncoding = null; public void init(FilterConfig arg0) throws ServletException {
    this.filterConfig = arg0;    
            this.defaultEncoding = filterConfig.getInitParameter("defaultencoding");    
    } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    request.setCharacterEncoding(defaultEncoding);    
            chain.doFilter(request, response);        
    }
       
    public void destroy() {
    this.defaultEncoding = null;    
            this.filterConfig = null; 
    }}
    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">    <filter>   
           <filter-name>CharsetFilter</filter-name>   
           <filter-class>com.wyx.actions.admin.SetEncodeFilter</filter-class> 
           <init-param>
            <param-name>defaultencoding</param-name>
            <param-value>UTF-8</param-value>
       </init-param>
        </filter>   
        <filter-mapping>   
           <filter-name>CharsetFilter</filter-name>   
           <url-pattern>/*</url-pattern>   
        </filter-mapping>    <!-- 其它的就省略了 -->
      

  7.   

    还有tomcat5的配置也改过了:server.xml
    <Connector port="8080"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   debug="0" connectionTimeout="20000" uriencoding="UTF-8" 
                   disableUploadTimeout="true" useBodyEncodingForURI="true" />
      

  8.   

    使用new String()带编码参数那个构造方法这是我的终极解决方案了