AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wort und Umlaute etc...

Wort und Umlaute etc...

Offene Frage von "Bauer007"
Ein Thema von Bauer007 · begonnen am 16. Jan 2008 · letzter Beitrag vom 12. Feb 2008
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.734 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Wort und Umlaute etc...

  Alt 16. Jan 2008, 13:14
Zitat von Christian Seehase:
Die kennt allerdings noch nicht mal D7, geschweige denn D5
Ups. immer diese Feinheiten.
Uli Gerhardt
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Wort und Umlaute etc...

  Alt 16. Jan 2008, 13:28
Hallo Sebastian,

in Anlehnung an den von dir studierten Thread UTF8 Codierung:

Delphi-Quellcode:
uses
  idURI;

begin
  with TIdURI do
    // ShowMessage(UrlEncode(AnsiToUtf8('unmöglich'))); // geht leider nicht
    ShowMessage(Utf8ToAnsi(UrlDecode('unm%C3%B6glich'))); // geht
end;
Für das Encoding muss der Code ein kleinwenig anders aussehen:

Delphi-Quellcode:
begin
  with TIdURI.Create do
  try
    ShowMessage(PathEncode(AnsiToUtf8('unmöglich')));
  finally
    Free;
  end;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
Bauer007

Registriert seit: 17. Sep 2007
Ort: Husum
56 Beiträge
 
Delphi XE2 Professional
 
#13

Re: Wort und Umlaute etc...

  Alt 16. Jan 2008, 13:40
ich danke Euch ich bin nun glücklich


ps.: mein indy kennt kein AnsiToUtf8
Sebastian
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Wort und Umlaute etc...

  Alt 18. Jan 2008, 12:35
Stimmt, D5 kennt AnsiToUtf8() noch nicht.

Vielleicht magst du es mit diesen beiden Funktionen probieren?

Delphi-Quellcode:
function UTF8Decode(const s: string): WideString;
var
  n: Integer;
begin
  n := MultiByteToWideChar(CP_UTF8, 0, @s[1], Length(s), nil, 0);
  SetLength(Result, n);
  MultiByteToWideChar(CP_UTF8, 0, @s[1], Length(s), @Result[1], n);
end;

function UTF8Encode(const ws: WideString): string;
var
  n: Integer;
begin
  n := WideCharToMultiByte(CP_UTF8, 0, @ws[1], Length(ws), nil, 0, nil, nil);
  SetLength(Result, n);
  WideCharToMultiByte(CP_UTF8, 0, @ws[1], Length(ws), @Result[1], n, nil, nil);
end;
Getippt und nur einmal getestet.

ShowMessage(Utf8Decode(Utf8Encode('äöüÄÖÜß'))); Freundliche Grüße
  Mit Zitat antworten Zitat
Bauer007

Registriert seit: 17. Sep 2007
Ort: Husum
56 Beiträge
 
Delphi XE2 Professional
 
#15

Re: Wort und Umlaute etc...

  Alt 18. Jan 2008, 12:38
meine gefundene Lösung (nachdem ich dann wusste wonach ich suchen kann hier im Forum) ist das hier:

Delphi-Quellcode:
function StringToWideStringEx(const S: string; CodePage: Word): WideString;
var
  InputLength,
    OutputLength: Integer;
begin
  InputLength := Length(S);
  OutputLength := MultiByteToWideChar(CodePage, 0, PChar(S), InputLength, nil, 0);
  SetLength(Result, OutputLength);
  MultiByteToWideChar(CodePage, 0, PChar(S), InputLength, PWideChar(Result), OutputLength);
end;

function WideStringToStringEx(const WS: WideString; CodePage: Word): string;
var
  InputLength,
    OutputLength: Integer;
begin
  InputLength := Length(WS);
  OutputLength := WideCharToMultiByte(CodePage, 0, PWideChar(WS), InputLength, nil, 0, nil, nil);
  SetLength(Result, OutputLength);
  WideCharToMultiByte(CodePage, 0, PWideChar(WS), InputLength, PChar(Result), OutputLength, nil, nil);
end;


function UTF8ToWideString(const S: string): WideString;
begin
  Result := StringToWideStringEx(S, CP_UTF8);
end;

function WideStringToUTF8(const WS: WideString): string;
begin
  Result := WideStringToStringEx(WS, CP_UTF8);
end;

Ist deinem sehr ähnlich
Sebastian
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: Wort und Umlaute etc...

  Alt 18. Jan 2008, 12:47
Ja, die Ähnlichkeit ist verblüffend. Du hast sogar daran gedacht, dass man eventuell UCS2 in eine fremde Sprache übersetzen möchte. Für die lokal installierte ACP kannst du den WideString und AnsiString auch einfach durch Zuweisung konvertieren - Delphi macht dann schon das Richtige.
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Wort und Umlaute etc...

  Alt 18. Jan 2008, 12:50
jo
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Bauer007

Registriert seit: 17. Sep 2007
Ort: Husum
56 Beiträge
 
Delphi XE2 Professional
 
#18

Re: Wort und Umlaute etc...

  Alt 12. Feb 2008, 15:15
Ich musste hier den Thread nochmal ausbuddeln.

da mein Problem immer noch da ist!

Also ich erkläre erstmal!

Es geht in diesem Beispiel immer um das Wort "Mühe"

mal wird es so kodiert zb bei Amazon als "M%FChe"
http://www.amazon.de/s/ref=nb_ss_w?_...eywords=M%FChe

und dann zb bei SoftwareLoad oder myVideo als "M%C3%BChe"
http://www.myvideo.de/news.php?rubri...=&searchOrder=


untereinander sind diese Schreibweisen nicht kompatibel!
Wie kann ich nun aus meinem Programm heraus eine URL erzeugen mit dem Wort Mühe das JEDER Suche gerecht wird udn in JEDER Funktioniert!?
Daran verzweifel ich gerade maßlos!



Ich danke euch für Eure Hilfe - Hieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeelfe!
Sebastian
  Mit Zitat antworten Zitat
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 09:40 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