Witam, w jaki sposób pracować na plikach w kodowaniu UTF-8 w C++ Builder? Chcę wczytać plik np. przez LoadFromFile, dodać tekst i zapisać. Niby wszystko proste ale przez "Charset" wszystko się sypie. Jest na to proste rozwiązanie? Proszę o pomoc.
A czy te pliki mają być RichTextami czy zwykłymi plikami tekstowymi?
Zwykłe pliki tekstowe.
Trochę nie bardzo rozumiem dlaczego używasz RichEdita jeśli chcesz odczytywać i zapisywać zwykłe pliki tekstowe. No ale załóżmy, że potrzebujesz formatowania tylko na czas edycji.
Przestawiasz property PlainText na czas zapisu/odczytu pliku? Jeśli nie przeczytaj:
http://docwiki.embarcadero.com/Libraries/XE7/en/Vcl.ComCtrls.TCustomRichEdit.PlainText
Podajesz odpowiednie kodowanie przy zapisie/odczycie?
http://docwiki.embarcadero.com/Libraries/XE7/en/System.SysUtils.TEncoding.UTF8
Dzięki, chodziło właśnie o kodowanie przy load, automatyczne rozpoznanie nie działało a nie wiedziałem jak wymusić ręcznie. Dziękuje za pomoc.
Jeszcze jedno szybkie pytanie. W jaki sposób uzyskać ten sam efekt czyli UTF8 w Edit czy Label?
Testuje:
Label1->Caption = UTF8String(UTF8Decode("№.txt"));
Label1->Caption = UTF8String("№.txt");
jednak nie pomaga
[bcc32 Warning] Unit1.cpp(63): W8114 Character represented by universal-character-name '\u2116' cannot be represented in the current ansi locale
W zamian otrzymuje znak "?".
Label1->Caption = L"№.txt";
http://docwiki.embarcadero.com/RADStudio/XE7/en/Enabling_C%2B%2B_Applications_for_Unicode
Dziękuje, proste rozwiązania najlepsze. Heh często L"" stosuje a nie wpadłem na to.