AGB  ·  Datenschutz  ·  Impressum  







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

Umlaute in string erstetzen

Ein Thema von khh · begonnen am 10. Nov 2012 · letzter Beitrag vom 10. Nov 2012
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#1

Umlaute in string erstetzen

  Alt 10. Nov 2012, 12:28
hallo zusammen
ich habe einen String in dem ich die Umlaute folgendermassen ersetzen möchte:
stringreplace(bezeichnung,'ä','ae',[rfReplaceAll, rfIgnoreCase]);

leider klappt das nicht, das ü wird im Debuger als #252 angezeigt.

was mache ich falsch ?

EDIT:
bezeichnung:= stringreplace(bezeichnung,'ä','ae',[rfReplaceAll, rfIgnoreCase]);
Karl-Heinz

Geändert von khh (10. Nov 2012 um 12:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: Umlaute in string erstetzen

  Alt 10. Nov 2012, 12:36
Wie wäre es mit auswertung des Rückgabewertes?

Code:
bezeichnung := stringreplace(bezeichnung,'ä','ae',[rfReplaceAll, rfIgnoreCase]);
und ü hat den Ordinalwert #252, das ist dann auch ok.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Umlaute in string erstetzen

  Alt 10. Nov 2012, 12:38
Wie wäre es mit auswertung des Rückgabewertes?

Code:
bezeichnung := stringreplace(bezeichnung,'ä','ae',[rfReplaceAll, rfIgnoreCase]);
und ü hat den Ordinalwert #252, das ist dann auch ok.
hab ich natürlich gemacht, sorry wenn ich das nicht so rüber brachte.
das ä wurde aber trotzdem nicht durch ae ersetzt
Karl-Heinz
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Umlaute in string erstetzen

  Alt 10. Nov 2012, 12:44
Eigentlich sollte es klappen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  bezeichnung: string;
begin
  bezeichnung := 'Öktöberfest in München. Da tränkt man viel Bier.';
  bezeichnung := stringreplace(bezeichnung,'ä','ae',[rfReplaceAll, rfIgnoreCase]);
  bezeichnung := stringreplace(bezeichnung,'ü','ue',[rfReplaceAll, rfIgnoreCase]);
  bezeichnung := stringreplace(bezeichnung,'ö','oe',[rfReplaceAll, rfIgnoreCase]);
  ShowMessage(bezeichnung);
end;
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Umlaute in string erstetzen

  Alt 10. Nov 2012, 12:48
ja mit deinem Oktoberfest klappt es auch

Mein Wert kommt aber aus der DB und da klappt es leider nicht,

bezeichnung:= orteZTable.FieldByName('bezeichnung').asstring;

das DB feld ist folgendermassen definiert :
BEZEICHNUNG CHAR(100) CHARACTER SET ISO8859_1 COLLATE DE_DE,
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Umlaute in string erstetzen

  Alt 10. Nov 2012, 12:47
Ich lese gerade Freepascal!
Kann es sein das hier diese Funktion einen fehler hat?
In Freepascal/Lazarus ist man ja auf die Glorreiche Idee gekommen im Gegensatz zu allen anderen relevanten modernen Programmiersprachen/Frameworks wie .NET/Java/Delphi ( Unicode rein per UTF8 zu realiseren und keinen Wide/Unicodestring einzuführen/durchzuziehen. Da gab schon öfter einige Funktionen die das dann nicht berücksichtigt hatten. Evtl erwartet ja diese Funktion unter FP/lazarus einen UTF8-String statt eines ANSI-Strings.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Umlaute in string erstetzen

  Alt 10. Nov 2012, 12:49
Ich lese gerade Freepascal!
Kann es sein das hier diese Funktion einen fehler hat?
In Freepascal/Lazarus ist man ja auf die Glorreiche Idee gekommen im Gegensatz zu allen anderen relevanten modernen Programmiersprachen/Frameworks wie .NET/Java/Delphi ( Unicode rein per UTF8 zu realiseren und keinen Wide/Unicodestring einzuführen/durchzuziehen. Da gab schon öfter einige Funktionen die das dann nicht berücksichtigt hatten. Evtl erwartet ja diese Funktion unter FP/lazarus einen UTF8-String statt eines ANSI-Strings.
Heißt ich muss erst nach UTF8 umwandeln?

EDIT: super, so funktionierts

Ich danke euch
Karl-Heinz

Geändert von khh (10. Nov 2012 um 12:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Umlaute in string erstetzen

  Alt 10. Nov 2012, 13:02
Heißt ich muss erst nach UTF8 umwandeln?

EDIT: super, so funktionierts
Bei FP/Lazaraus musst du eigentlich immer zuerst mal schauen obs mit einem UTF8 oder mit einem ANSI-String klappt. So wie es ausschaut gibt dort eine munteren Mix aus String-Codierung der benötigt wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:06 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