Top > OOobbs2 > 40
** [[OOobbs2/40]] [#h6a59f00]
-''サマリ'': MySQL 検索結果の日本語表示方法を教えてください。
-''環境'': Basic
-''状態'': 未解決
-''投稿者'': [[なんでかな]]
-''投稿日'': 2007-06-03 (日) 07:55:13

*** 質問 [#v6502430]
OOoBasic の DriverManager(ODBC) で MySQL に接続して ResultSet に検索結果を求めるマクロを書いたところ、カラム名、データともに日本語が文字化けします。ODBC DataSource 側で SET NAMES 'sjis' を設定しても解決しません。対策をご存知の方がいれば、是非ご教示を。

参考までにマクロの概要は以下のとおりです。

 oManager = CreateUnoService("com.sun.star.sdbc.DriverManager")
 sURL = "sdbc:odbc:DataSourceName"
 aParams(0).Name = "user"
 aParams(0).Value = "TestUser"
 aParams(1).Name = "password"
 aParams(1).Value = "Himitsu"
 oCon = oManager.getConnectionWithInfo(sURL, aParams())
 oStatement = oCon.createStatement()
 sSQL = "Select xyz as テスト From aaa Where bbb like '%何故%' "
 oResult = oStatement.executeQuery(sSQL)

検索結果 oResult から以下のメソッドでカラム名、データを引き出しますが、日本語が文字化けしてしまいます。

 oResult.getMetaData().getColumnName(1)
 oResult.getString(1)

使用するドライバーを com.sun.star.sdb.DatabaseContext に切り替えて MySQL に接続すると問題なく日本語が表示されます。 DatabaseContext は重そうなので、できれば DriverManager で日本語表示ができると嬉しい。

よろしくお願いします。
*** 回答 [#re482150]
- 同じような文字化けする/しない現象があったのでメモしておきます。
まずLinux上にMySQLのDB, table, データ, が全てutf8で統一された環境を用意しました。
で、WindowsマシンにMySQLのodbcドライバをセットアップしたのですが、その際、odbcの「Details」->「Misc Options」の「Character Set」を「utf8」に設定していると、上記コードと同様のDriverManagerサービスを使ったやり方で文字化けしました。
次に、「Details」->「Misc Options」の「Character Set」を「sjis」に設定してみると何故か文字化けが解消しました。何が起こったのかさっぱり分かりませんが、メモまで。 -- tani &new{2010-01-27 (水) 18:57:42};

#comment


*** 感想,コメント,メモ [#h96708ad]

#comment

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes