Ergebnis 1 bis 7 von 7

Thema: ICQ-Skript: Hyperlinks decodieren

  1. #1
    TP-Senior Avatar von Erstar
    Registriert seit
    Oct 2005
    Beiträge
    238

    ICQ-Skript: Hyperlinks decodieren

    Hallo,
    ich empfange über die Klasse WebIcqLite ICQ-Nachrichten über ein PHP-Skript.
    Die empfangenen Nachrichten sind soweit lesbar, außer die Hyperlinks.
    Beispiel http://google.de:
    goog??.d?/
    Ich weis ja leider nicht, wie die Hyperlinks codiert sind und weis auch nicht, wie ich das herausfinden soll, aber vllt. gibt es da ja einen Standard, den ihr kennt?
    Ich habe es bereits mit
    PHP-Code:
    htmlspecialchars(urldecode()); 
    versucht, dabei kam dann folgendes heraus:
    _http:// ??ogle?de_
    Hoffe, mir kann jemand helfen.
    MfG Erstar
    -.-

  2. #2
    TP-Insider Avatar von wuselmann
    Registriert seit
    May 2001
    Ort
    Hamburg
    Beiträge
    879
    Die Ausgabe verwirrt. Sicher, dass das so passt? Encoding?
    Gib mal die URLs mittels ord() aus und schaue, ob da nicht ein paar verquere UTF-8-Zeichen dazwischen sind.

  3. #3
    TP-Senior Avatar von Erstar
    Registriert seit
    Oct 2005
    Beiträge
    238
    Moin,
    erstmal Danke für die Antwort.
    Folgendes kleines Skript hab ich mir schnell gebastelt zur Ausgabe von ord(), als Beispiel dient wieder http://www.google.de:
    PHP-Code:
    $input $url;
    $count strlen($input);
    for(
    $i=1;$i<=$count;$i++)
    {
        
    $calc $i "1";
        
    $alpha substr($input$calc1);
        
    $ord ord($alpha);
        echo 
    "Zeichen ".$i.": ".$ord."<br>";

    Ausgabe (direkt beim empfangen, ohne Umwege):
    Zeichen 1: 0
    Zeichen 2: 103
    Zeichen 3: 0
    Zeichen 4: 111
    Zeichen 5: 0
    Zeichen 6: 111
    Zeichen 7: 0
    Zeichen 8: 103
    Zeichen 9: 0
    Zeichen 10: 63
    Zeichen 11: 0
    Zeichen 12: 63
    Zeichen 13: 0
    Zeichen 14: 46
    Zeichen 15: 0
    Zeichen 16: 63
    Zeichen 17: 0
    Zeichen 18: 101
    Dann hab ich nochmal in die Mysql-DB geguckt, in der die empfangenen Nachrichten gespeichert werden.
    �g�o�o�g�?�?�.�?�e
    Die Ausgabe des Mysql-Datenbankeintrages in meinem richtigen Skript sieht dann wieder so aus:
    goog??.?e
    Was mögen diese Zeichen bedeuten?

    MfG Erstar
    Geändert von Erstar (13.04.2012 um 12:10 Uhr)
    -.-

  4. #4
    TP-Insider Avatar von wuselmann
    Registriert seit
    May 2001
    Ort
    Hamburg
    Beiträge
    879
    Der "ORD()-Test" zeigt, dass da 2 byte pro Zeichen für "google.de" eintrudeln. In der Kombination mit dem String "http://", der vielleicht nur mit 1 byte pro Zeichen kommt, kann das der Grund für den Effekt sein.
    Schau Dir noch mal die Encoding-Einstellungen für die Kette Datenbank-PHP-HTML/Browser an... da könntest Du fündig werden.

  5. #5
    TP-Senior Avatar von Erstar
    Registriert seit
    Oct 2005
    Beiträge
    238
    Schau Dir noch mal die Encoding-Einstellungen für die Kette Datenbank-PHP-HTML/Browser an... da könntest Du fündig werden.
    Wo genau finde ich diese Einstellungen?
    -.-

  6. #6
    TP-Insider Avatar von wuselmann
    Registriert seit
    May 2001
    Ort
    Hamburg
    Beiträge
    879
    Wo und was hast Du bisher recherchiert?
    Welche alternativen Schlüsse konntest Du bisher aus den Erkenntnissen ziehen?
    Lass Dir die 1byte/2byte-Sache noch mal durch den Kopf gehen.

  7. #7
    TP-Senior Avatar von Erstar
    Registriert seit
    Oct 2005
    Beiträge
    238
    //Edit:

    Die Lösung.
    ICQ schickt anscheinend schon das Format mit der Nachricht mit.
    Darum kann man folgendes machen:
    PHP-Code:
                if (isset($msg['encoding']) && is_array($msg['encoding']))
                {
                    if (
    $msg['encoding']['numset'] === 'UNICODE'
                    {
                        
    $msg['realmessage'] = $msg['message'];
                        
    $msg['message'] = mb_convert_encoding($msg['message'], 'cp1251''UTF-16');
                    }
                    if (
    $msg['encoding']['numset'] === 'UTF-8'
                    {
                        
    $msg['realmessage'] = $msg['message'];
                        
    $msg['message'] = mb_convert_encoding($msg['message'], 'cp1251''UTF-8');
                    }
                } 
    Dann funktioniert es.
    MfG Erstar
    Geändert von Erstar (19.04.2012 um 10:41 Uhr)
    -.-

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [DW 8] Hyperlinks
    Von Blue_Gecko im Forum Dreamweaver & andere Webeditoren
    Antworten: 4
    Letzter Beitrag: 02.09.2010, 11:23
  2. [DW CS3] Hyperlinks
    Von Tom Waits im Forum Dreamweaver & andere Webeditoren
    Antworten: 1
    Letzter Beitrag: 28.07.2010, 22:46
  3. Hyperlinks
    Von martina17 im Forum Webdesign allgemein
    Antworten: 4
    Letzter Beitrag: 28.03.2009, 10:29
  4. Hyperlinks
    Von lorephil im Forum Dreamweaver & andere Webeditoren
    Antworten: 3
    Letzter Beitrag: 01.01.2003, 12:55
  5. [CSS] Hyperlinks mit CSS
    Von Tartaros im Forum HTML & CSS
    Antworten: 5
    Letzter Beitrag: 12.03.2002, 10:21

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51