IDE:Delphi7
OS:Windows2000Pro
はじめまして。
いつもは過去ログ検索で問題が解決するのですが今回は
どうしてもうまくいかないので質問させてください。
内部データの文字コードがujis(EUC-JP)で動いている
MySQLにたいしてdbExpressのTSQLConnectionを利用して接続したのですが
DBGridに結果を表示させようとすると文字化けしてしまいます。
DBGridのFontプロパティに文字コードを設定する
Charsetという項目があったのですが、SJISはあってもEUCはありませんでした。
どのようにすればEUCで動いているデータベースのデータを文字化けすることなく
表示できるのでしょうか?
(標準で用意されてそうな気もするのですが・・・)
文字列を変換する処理をコーディングしないとできないと思います。
まず、EUCをSJISに変換する関数をインターネット等で探すか自分で作ります。(仮にEUCtoSJIS()とします。)
項目コンポーネント(TField)のOnGetTextを...
procedure TForm1.Table1Field1GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text := EUCtoSJIS(Sender.AsString);
end;
というような感じにすると良いと思います。
masayanさんの意見を元に、以下のサイトを参考にしてやってみたら
見事成功しました。masayanさんに感謝です。
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20353188.html
あー難しかった。
ツイート | ![]() |