Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 14:16
Verwendet Lazarus/FPC nicht primär UTF-8?
Lazarus verwendet UTF-8.
Free Pascal verwendet das Ansi System Encoding (unter Deutschem Windows meist CP1242 und unter Linux meist UTF-8).

Hallo,

gibt es für Lazarus sowas wie WideStrings.pas und WideStringUtils.pas aus Delphi?

Ich muss aus einer UTF-16 kodierten Datei Strings auslesen und diese dann per InsertMenuW dann in ein Menü einfügen. Leider bekomme ich im Menü nur Müll angezeigt und nicht meine chinesischen Zeichen. Jemand ne Idee?
Wie liest du die Datei denn aus?

Wenn du am Ende auf jeden Fall einen WideString hast, dann machst du z. B. für ein MenuItem einfach folgendes:

Delphi-Quellcode:
  // alle GUI Elemente in Lazarus verwenden UTF-8, also einen WideString in
  // UTF-8 umkodieren
  item.Caption := UTF8Decode(MeinWideString);
  // für einen Ansi String funktioniert das übrigens ähnlich
  item.Caption := AnsiToUTF8(MeinAnsiString);
  // oder
  item.Caption := SysToUTF8(MeinAnsiString);
Nebenbei: Du könntest an Stelle von WideString auch UnicodeString verwenden (ab Free Pascal 2.4.0). Dieser hat im Gegensatz zu WideString eine Referenzzählung und Copy-On—Write Funktionalität analog zu AnsiString (aka String).

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat