Re: Wort und Umlaute etc...
Zitat:
|
Re: Wort und Umlaute etc...
Hallo Sebastian,
in Anlehnung an den von dir studierten Thread UTF8 Codierung:
Delphi-Quellcode:
Für das Encoding muss der Code ein kleinwenig anders aussehen:
uses
idURI; begin with TIdURI do // ShowMessage(UrlEncode(AnsiToUtf8('unmöglich'))); // geht leider nicht ShowMessage(Utf8ToAnsi(UrlDecode('unm%C3%B6glich'))); // geht end;
Delphi-Quellcode:
Freundliche Grüße
begin
with TIdURI.Create do try ShowMessage(PathEncode(AnsiToUtf8('unmöglich'))); finally Free; end; end; |
Re: Wort und Umlaute etc...
ich danke Euch :-) ich bin nun glücklich ;-)
ps.: mein indy kennt kein AnsiToUtf8 |
Re: Wort und Umlaute etc...
Stimmt, D5 kennt AnsiToUtf8() noch nicht.
Vielleicht magst du es mit diesen beiden Funktionen probieren?
Delphi-Quellcode:
Getippt und nur einmal getestet.
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;
Delphi-Quellcode:
Freundliche Grüße
ShowMessage(Utf8Decode(Utf8Encode('äöüÄÖÜß')));
|
Re: Wort und Umlaute etc...
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 :-) |
Re: Wort und Umlaute etc...
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.
|
Re: Wort und Umlaute etc...
jo
|
Re: Wort und Umlaute etc...
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! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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