AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Dauerbrenner Umlaute: Lazarus vs. Delphi

Dauerbrenner Umlaute: Lazarus vs. Delphi

Ein Thema von Phillie08 · begonnen am 26. Aug 2013 · letzter Beitrag vom 27. Aug 2013
Antwort Antwort
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 26. Aug 2013, 21:08
Hi !
Delphi-Quellcode:
uses LCLType;

procedure test;
var
  Z: TUTF8Char;
begin
  Z := 'a';
  Z := 'ß';
  Z := 'ö';
end;
wäre auch ne Möglichkeit.

MfG
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#2

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 26. Aug 2013, 21:46
Kennt Lazerus keine AnsiChar? Denn Du willst ja AnsiChar (1 Byte Chars) und keine MultiByteChars bearbeiten.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

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

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 26. Aug 2013, 22:57
AnsiChar = Char. Das ist nur Low Ascii. Alles über 128 wird als Sting interpretiert.
Gruß
Cookie

Geändert von cookie22 (26. Aug 2013 um 22:59 Uhr)
  Mit Zitat antworten Zitat
MeierZwoo

Registriert seit: 3. Dez 2012
106 Beiträge
 
#4

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 26. Aug 2013, 23:34
Wenn Lazerus AnsiChar als 7bitASCII interpretiert, geht aber auch #228 nur als 2-Byte Char oder string.
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

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

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 27. Aug 2013, 08:29
Das Problem ist nicht Lazarus, sondern wie FPC die Zeichenkodierung der Quelltextdatei handhabt. Ist eine Datei im UTF8 Format (mit oder ohne BOM), dann interpretiert FPC den Quelltext dementsprechend und dann werden auch Konstanten als UTF8 behandelt (dabei wird 'ß' zu mehr als einem Byte). Wenn du nun die Kodierung von UTF8 auf z. B. 1252 (deutsche Standardcodepage unter Windows) änderst (geht in Lazarus per Rechtsklick im Editor unter Dateieinstellungen => Zeichenkodierung) , dann kompiliert der Code wieder (du solltest deinen Algorithmus dann aber in eine eigene Unit auslagern, da sonst Zuweisungen wie Edit1.Text := 'Groß' wiederum für Probleme sorgen, da die LCL mit UTF8 arbeitet).
Alternativ kannst du die oben erwähnte UTF8ToChar -Funktion verwenden.

Ansonsten vielleicht auch mal die Artikel hier im Lazarus/FPC Wiki durchlesen.

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

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 27. Aug 2013, 09:34
Stellst du den Editor auf ansi(cp1252), kannst du die Ausgabe wie folgt machen:
Delphi-Quellcode:
uses LConvEncoding;

procedure TForm1.Button1Click(Sender: TObject);
var
  Z: Char;
begin
  Z := 'ö';
  label1.caption := CP1252ToUTF8(Z);
end;
MfG
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 27. Aug 2013, 11:54
[OT] vor vielen, vielen Jahren hatte ich mal Source code der so aussah:
Delphi-Quellcode:
for i:=0 to mamax do
  MyArrayÄiÖ:=i;
Mir scheint diese Zeiten sind immer noch nicht ganz vorbei.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Phillie08

Registriert seit: 19. Jan 2011
13 Beiträge
 
#8

AW: Dauerbrenner Umlaute: Lazarus vs. Delphi

  Alt 27. Aug 2013, 13:25
Ich möchte mich bei allen Hilfsbereiten bedanken, ich komme jetzt in der Tat weiter, zumindest Compiler-technisch.

Der Hinweis auf TUTF8Char scheint mir der einfachste Weg zu sein. Damit probiere ich es mal.

Nur, falls es interessiert: Ich hatte natürlich die Tatsache im Auge gehabt, dass die nationalen Sonderzeichen im oberen Teil der Codetabelle liegen und daher mit Sachen wie WideChar, AnsiChar usw. experimentiert, alles ohne Erfolg.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz