「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:1
総数:2138
現在:2


JDBCを使用してMySQLに接続する場合の文字セットの指定がうまく行きません。

ページOpenOffice.org FAQの登録ページ
投稿者mmwellage
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2006-12-05 15:18:20 (火)
OSWin2K
依存するページfaq/3/53 Issue #45462 #51448 #62780
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

OOo2.0.4 で 以下の環境でMySQLに接続してテスト中です。
MySQL: 4.0.24-nt 文字セットは EUC-JP
JDBCドライバー :mysql-connector-java-3.0.17-ga-bin.jar
JDBCドライバーは正しく認識され、目的のデータベースにも接続して
テーブルデータの参照はできますが
日本語のデータが文字化けしています。
データベース-プロパティ-追加設定 で文字セットをEUC-JPに設定したのですが
改善されません。
因みに、ODBC接続では、同プロパティの設定で、日本語が正しく表示されます。
JDBC接続においても、EUC-JPのMySQLから正しく日本語表示が可能になる
設定方法について、ご教示いただけませんか?。よろしくお願いいたします。


近い環境で日本語の表示、入力は可能ですが...

M.Kamataki (2006-12-05 17:05:04 (火))

わたしの環境は
サーバーPC:Windows 2000 SP4
MySQL: 4.0.13-nt EUC-JP
JDBCドライバー:mysql-connector-java-3.1.14-bin.jar
です。
クライアントWindows XP SP2では、日本語の表示、入力は可能です。ただし、テーブル作成に失敗します。一見作成できたように見えますが、再起動すると見えなくなります。

とりあえず、JDBCドライバーをなるべく新しいものにされることをすすめます。

また、JDBCドライバーはmy.cnf(my.ini)を参照しないという情報があります(翔泳社刊「超極める!MySQL」P029)。これがどう影響するのか、いまひとつ不明ですが、本ではJDBCドラバーのオプションで文字コードを指定するようにと書いてあります。具体的には、次のようにテーブルデータベース名のあとに書きます。

test?useUnicode=true&characterEncoding=euc_jp

Baseの[編集]−[データベース]−[プロパティ]では下図のような指定になります。

faq4_124_01.png

今のドライバでは、この指定で改善されたりしないでしょうか。

なお、検証サンプルが多いとはいえませんが、Linuxがサーバーの場合はこのような不具合は少ないようです(インターネット経由で接続できるMySQLへBase+JDBCで接続するとフリーズしますが、日本語は問題なし)。

いちおう、Issue登録されていますが、MySQLは様々なバージョンがあり、ドライバーのバージョンも様々なので、どこに原因があるのか、追求するのは骨が折れそうです。

「Cann't read EUC-JP code! MySQL JDBC driver」
http://www.openoffice.org/issues/show_bug.cgi?id=45462

ありがとうございます、うまく日本語を表示することができました。

mmwellage (2006-12-05 23:15:14 (火))

M.Kamataki  さん
ご指導いただいた様に、データベース-プロパティ-高度なプロパティ の
MySQLデータベースの名前に
データベース名?useUnicode=true&characterEncoding=euc_jp
と設定することにより、問題なく日本語のフィールドが表示できました。
大変ありがとうございました。
完了に致します。

良かったです

M.Kamataki (2006-12-06 10:59:52 (水))

MySQL+JDBCでは、日本語の設定で戸惑うことが多いようです。わたしもmy.cnfに文字コード設定がないサーバー(UTF8なら日本語データもOK)で、やはりUTF8にする際は同様の方法で解決しました。EUCでも効果があることがわかって良かったです。

なお、上記のIssue以外でも以下のものが登録されています。

「Wrong charset translation when connetcing to MySQL 4.1」
http://www.openoffice.org/issues/show_bug.cgi?id=51448
修正せずクローズ。 :p

「MySQL (JDBC) connector's charset settings do not work」
http://www.openoffice.org/issues/show_bug.cgi?id=62780

お名前:
題名:


添付ファイル: filefaq4_124_01.png 690件 [詳細]