Kodowanie UTF-8 w bazie

0

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.

0

zaraz po ustanowieniu połączenia musisz wysłać zapytanie do bazy:

SET Names utf8

i powinno pomóc

0

Niestety nadal są krzaki, tylko się trochę zmieniły.

0

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

0

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ść :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1