假设浏览器的header encoding是UTF-8,DiskFileUpload.setHeaderEncoding("UTF-8");
...
fileName=FileItem.getName();System.out.println(fileName);如果打印出来的fileName不会乱码,
那么剩下的任务就是Servlet与mysql之间的了。
...
fileName=FileItem.getName();System.out.println(fileName);如果打印出来的fileName不会乱码,
那么剩下的任务就是Servlet与mysql之间的了。
使得有如下代码(大概的,有些也许会写错,可以mysqld --verbose --help,
mysql --help确认一下)[client]
default-character-set=gbk
[mysqld]
character-set-server=utf8然后重新建库表,再试试。注意,通过jdbc for mysql指定 useUnicode=true&characterEncoding=UTF-8.
这样直接从数据库读出来就可以了,不用再转码。
通过jndi找数据库的连接,<Resource name="jdbc/user"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/user">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>jing6699</value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name> <value>jdbc:mysql://localhost:3306/user?autoReconnect=true</value>
</parameter>
</ResourceParams>我将jdbc:mysql://localhost:3306/user?autoReconnect=true换成jdbc:mysql://localhost:3306/user?autoReconnect=true&useUnicode=true&characterEncoding=gb2312后,tomcat就启不来了,
mysqld: ERROR: unknown variable 'character-set-server=utf8'