Top > OOobbs2 > 40

OOobbs2/40 Edit

  • サマリ: MySQL 検索結果の日本語表示方法を教えてください。
  • 環境: Basic
  • 状態: 未解決
  • 投稿者: なんでかな?
  • 投稿日: 2007-06-03 (日) 07:55:13

質問 Edit

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 で日本語表示ができると嬉しい。

よろしくお願いします。

回答 Edit

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

感想,コメント,メモ Edit



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