Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wort und Umlaute etc... (https://www.delphipraxis.net/106765-wort-und-umlaute-etc.html)

uligerhardt 16. Jan 2008 12:14

Re: Wort und Umlaute etc...
 
Zitat:

Zitat von Christian Seehase
Die kennt allerdings noch nicht mal D7, geschweige denn D5 ;-)

Ups. immer diese Feinheiten. :-D :oops:

marabu 16. Jan 2008 12:28

Re: Wort und Umlaute etc...
 
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

Bauer007 16. Jan 2008 12:40

Re: Wort und Umlaute etc...
 
ich danke Euch :-) ich bin nun glücklich ;-)


ps.: mein indy kennt kein AnsiToUtf8

marabu 18. Jan 2008 11:35

Re: Wort und Umlaute etc...
 
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.

Delphi-Quellcode:
ShowMessage(Utf8Decode(Utf8Encode('äöüÄÖÜß')));
Freundliche Grüße

Bauer007 18. Jan 2008 11:38

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 :-)

marabu 18. Jan 2008 11:47

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.

delphinia 18. Jan 2008 11:50

Re: Wort und Umlaute etc...
 
jo

Bauer007 12. Feb 2008 14:15

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.
Seite 2 von 2     12   

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