ujis(EUC-JP)のMySQLのデータを表示するには?

解決


halt  2003-10-16 20:07:08  No: 5236

IDE:Delphi7
OS:Windows2000Pro

はじめまして。
いつもは過去ログ検索で問題が解決するのですが今回は
どうしてもうまくいかないので質問させてください。

内部データの文字コードがujis(EUC-JP)で動いている
MySQLにたいしてdbExpressのTSQLConnectionを利用して接続したのですが
DBGridに結果を表示させようとすると文字化けしてしまいます。

DBGridのFontプロパティに文字コードを設定する
Charsetという項目があったのですが、SJISはあってもEUCはありませんでした。

どのようにすればEUCで動いているデータベースのデータを文字化けすることなく
表示できるのでしょうか?
(標準で用意されてそうな気もするのですが・・・)


masayan  2003-10-17 20:38:23  No: 5237

文字列を変換する処理をコーディングしないとできないと思います。
まず、EUCをSJISに変換する関数をインターネット等で探すか自分で作ります。(仮にEUCtoSJIS()とします。)
項目コンポーネント(TField)のOnGetTextを...

procedure TForm1.Table1Field1GetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  Text := EUCtoSJIS(Sender.AsString);
end;

というような感じにすると良いと思います。


halt  2003-10-21 01:41:08  No: 5238

masayanさんの意見を元に、以下のサイトを参考にしてやってみたら
見事成功しました。masayanさんに感謝です。
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20353188.html

あー難しかった。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加