Delphi > Obecné

Odstranění diakritiky u  (velké A se stříškou)

<< < (2/4) > >>

Jirka:

--- Citace: geby  08-10-2021, 20:32:51 ---Já měl na mysli trochu jednodušší řešení. (v podstatě to ani nemusí být funkce...)

--- Konce citace ---

Já jsem zvolil Honzovo řešení víceméně z toho důvodu,  že nedochází ještě k mezi-převodu na AnsiString.

Jan Fiala:
AnsiString je od urcite verze Delphi definovany jako UNICODE string.
A verim tomu, ze ta implementace, kdy nastavis pro UNICODESTRING kodovou stranku a pak tam priradis string bude hodne podobna, jen ten zapis je kratsi.

Radek Červinka:

--- Citace: Jan Fiala  10-10-2021, 14:44:06 ---AnsiString je od urcite verze Delphi definovany jako UNICODE string.

--- Konce citace ---

To jednoduse není pravda. AnsiString je uplne jiny typ. Proto treb WinApi ma i API xxA a xxW , kde prvni je ansi varianta.

pf1957:

--- Citace: Radek Červinka  10-10-2021, 19:44:12 ---To jednoduse není pravda. AnsiString je uplne jiny typ. Proto treb WinApi ma i API xxA a xxW , kde prvni je ansi varianta.

--- Konce citace ---
Ano, ANSIString je posloupnost bytu -> sice muze obsahovat MBCS nebo UTF8 kodovani, ale typicky je to single byte string spojeny s nejakou kodovou strankou v kodovani ANSI, takze konverze Unicode -> ANSI muze ztracet data.  Proto jsme treba pouzivali kontrolu:

--- Kód: Delphi ---Assert(StrCanConvertToAnsi(s),'Unicode content of TStringList cannot be converted to ANSI using default Code Page'); 

Jan Fiala:

--- Citace: Radek Červinka  10-10-2021, 19:44:12 ---To jednoduse není pravda. AnsiString je uplne jiny typ. Proto treb WinApi ma i API xxA a xxW , kde prvni je ansi varianta.

--- Konce citace ---

Máš pravdu. Nějak jsem to měl v hlavě zafixované z webu, kde to takto bylo uvedeno.

A už vím, proč jsem to dělal přes funkci, kterou jsem uváděl výš. Řešení od Lukáše neumožňuje poslat jako parametr kódovou stránku, a já to mám jako obecnou funkci na překódovoání řetězce.

Navigace

[0] Seznam témat

[#] Další strana

[*] Předchozí strana

Přejít na plnou verzi