- PR -

JavaでのMySQLの文字コード指定

1
投稿者投稿内容
コペコペ
会議室デビュー日: 2005/11/06
投稿数: 1
投稿日時: 2005-11-06 00:31
以下の環境でJavaからJDBCでMySQLを利用しています。

Windows XP Home Edition Service Pack2
Java 2 SDK 1.5.0_04
MySQL 4.1.14-nt
mysql-connector-java-3.1.11


MySQLで文字コードを指定するときはmy.iniファイルにdefault-character-set=ujisを指定するだけでなく、MySQLへ接続後、「SET NAMES 'ujis'」を実行しなさいとWebサイトに書かれていましたので、実行しようとしています。
以下のコードで実行できると思っているのですが、MySQLに実行結果が反映されません。直接、MS-DOSプロンプトから「SET NAMES 'ujis'」を実行した場合は反映されます。

どなたかお気づきの点などありましたら、教えていただけませんでしょうか。

よろしくお願いします。


コード
--------------------------------------------------------------------
Class.forName("org.gjt.mm.mysql.Driver");

String url = "jdbc:mysql://localhost/xxx?characterEncoding=ujis";
String user = "xxx";
String pass = "xxx";
Connection con = DriverManager.getConnection(url, user, pass);

Statement stmt = con.createStatement();
stmt.execute("SET NAMES 'ujis'");


文字コード指定前の状態
--------------------------------------------------------------------

mysql> show variables like 'char%';
+--------------------------+----------------------------------------
| Variable_name | Value
+--------------------------+----------------------------------------
| character_set_client | latin1
| character_set_connection | latin1
| character_set_database | ujis
| character_set_results | latin1
| character_set_server | ujis
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 4.1\xxx
+--------------------------+----------------------------------------


文字コード指定後の状態
--------------------------------------------------------------------

mysql> show variables like 'char%';
+--------------------------+----------------------------------------
| Variable_name | Value
+--------------------------+----------------------------------------
| character_set_client | ujis
| character_set_connection | ujis
| character_set_database | ujis
| character_set_results | ujis
| character_set_server | ujis
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 4.1\xxx
+--------------------------+----------------------------------------
1

スキルアップ/キャリアアップ(JOB@IT)