mysql 中文编码问题 with JSP and PHP
slackware current
mysql 4.14
默认建立数据库之后jsp插入中文乱码
以为是jsp里写的jdbc不对。
Code: |
Class.forName("com.mysql.jdbc.Driver").newInstance(); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ sample_db?user=root&password=123456 &useUnicode=true&characterEncoding=GB2312"); |
后来用phpmyadmin连上数据库仍然不能正常插入中文数据,显示的全是?????
看来不是jdbc的问题了。
又看到sir上的这个文章
http://slack.linuxsir.org/main/?q=node/165
都想自己重新编译安装mysql了。
后来发现phpmyqamin里在建立数据库的时候有选择字符编码的选项。
Code: |
CREATE DATABASE `sample_db` DEFAULT CHARACTER SET gbk COLLATE gbk_bin; |
试了一下还真好用了。
按照sir上的兄弟的作法应该是比较彻底的,比如我这样做仍然不能让mysql的命令行输入和显示中文。
我的linux的locale是gbk的。
不知道是不是因为这个原因:
Code: |
mysql> use sample_db; Database changed mysql> status -------------- mysql Ver 14.7 Distrib 4.1.14, for slackware-linux-gnu (i486) using EditLine w rapper Connection id: 90 Current database: sample_db Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 4.1.14 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: gbk Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /var/run/mysql/mysql.sock Uptime: 2 hours 11 min 21 sec Threads: 1 Questions: 1431 Slow queries: 0 Opens: 24 Flush tables: 1 Open t ables: 2 Queries per second avg: 0.182 |
但一直都用phpmyadmin,呵呵,凑合用就成了。