AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unicode Problem mit Lazarus/Fpc

Ein Thema von cookie22 · begonnen am 22. Jan 2011 · letzter Beitrag vom 22. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#1

Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 12:17
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?
Gruß
Cookie
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 12:36
Verwendet Lazarus/FPC nicht primär UTF-8?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#3

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 12:38
Darum möchte er ja das UTF-16 konvertieren

Irgendwie/-wo wird das bestimmt möglich sein. (kann mir nicht vorstellen, daß die sowas vergessen haben)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 13:54
Die Frage ist erstmal: Wird die Textdati korrekt ausgelesen?

Dann schau mal ob du eine UTF8ToWideString-Funktion findest.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 14:14
Die Frage ist erstmal: Wird die Textdati korrekt ausgelesen?

Dann schau mal ob du eine UTF8ToWideString-Funktion findest.
Was bringt mir UTF8ToWideString, ich muss UTF-16 lesen und das selbe an die API Funktion weiter geben.

Mir ist nicht mal klar wie ich die Datei lesen soll ohne das ich Datenmüll bekomme.
Gruß
Cookie
  Mit Zitat antworten Zitat
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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 14:53
Abgesehn von den Surrogate-Pairs entspricht kann man ganz einfach WideStringToUtf8 nutzen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 14:58
Zitat:
Wie liest du die Datei denn aus?
Das ist hier die frage die ich mir stellen, bis jetzt irgendwie gar nicht.

Die Datei ist im Ini-Format, darum meine Frage nach WideStrings. Da hätt ich einfach mit LoadfromFile die Datei in eine WideString-Liste geladen und mir meine Strings rausgepickt. Gib es da nichts ähnliches?
Gruß
Cookie
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#9

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 15:02
Du kannst es notfalls über einen Stream in einen WideString laden, dann nach Ansi oder UTF-8 umwandeln und zum Schluß in eine Stringliste.


Aber warum nutzt du denn nicht direkt die WinAPI (davon die Wide-Version nutzen), bzw. kennt FPC/Lazarus denn kein TIniFile, welches diese API nutzt?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Unicode Problem mit Lazarus/Fpc

  Alt 22. Jan 2011, 15:06
Die Ini-Datei ist im UTF-16 Format, darum gibt es mit TIniFile nur Datenmüll.
Gruß
Cookie
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz