XE7; UTF-8 w RichEdit i podobnych.

0

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.

0

A czy te pliki mają być RichTextami czy zwykłymi plikami tekstowymi?

0

Zwykłe pliki tekstowe.

0

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

0

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.

0

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 "?".

0

Dziękuje, proste rozwiązania najlepsze. Heh często L"" stosuje a nie wpadłem na to.

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