Programem łączę się przez ADO z bazą MySQL. W bazie jest kodowanie utf-8. W programie zamiast polskich znaków w dbEdit mam krzaki.
Jak to naprawić?
PS. działam na Turbo Delphi.
Programem łączę się przez ADO z bazą MySQL. W bazie jest kodowanie utf-8. W programie zamiast polskich znaków w dbEdit mam krzaki.
Jak to naprawić?
PS. działam na Turbo Delphi.
zaraz po ustanowieniu połączenia musisz wysłać zapytanie do bazy:
SET Names utf8
i powinno pomóc
Niestety nadal są krzaki, tylko się trochę zmieniły.
najpierw ustawiasz w jakim kodowaniu będziesz odbierał dane z bazy
SET Names utf8
a następnie musisz sobie napisać fukcję która ci znaki przekonwertuje
function Ogonki(Tekst: String): String;
Var
I: Integer;
begin
for I := 1 to Length(Tekst) do
case Tekst[i] of
Chr(161): Tekst[i] := Chr(165);
Chr(166): Tekst[i] := Chr(140);
Chr(172): Tekst[i] := Chr(143);
Chr(177): Tekst[i] := Chr(185);
Chr(182): Tekst[i] := Chr(156);
Chr(188): Tekst[i] := Chr(159);
end;
Result := Tekst;
end;
przepuszczasz dane z bazy przez taką funkcję i powinno być ok
Dzięki za kolejną podpowiedź ale czy mógłbyś jeszcze napisać w którym miejscu dać wywołanie tej funkcji.
Teraz dane lecą po kolei: ADOConnection > ADOQuery > DataSource > dbEdit
gdzie w tym układzie jest miejsce na wywołanie tej funkcji?
PS. dzieki za cierpliwość, łączenie się z bazą mysql to dla mnie nowość :)