ilch Forum » Allgemein » HTML, PHP, SQL,... » Sonderzeichen im Teamspeakviewer

Geschlossen
  1. #1
    User Pic
    =MRT=Nick Mitglied
    Registriert seit
    09.02.2011
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    Hi zusammen,

    da der Viewer von teamspeakviewer.com des Öfteren etwas länger zum laden braucht bzw. auch mal eine Fehlermeldung anzeigt, habe ich einen Ersatz gesucht und bin auch fündig geworden. Leider werden die Sonderzeichen nicht korrekt angezeigt. Umlaute gehen, aber keine, ich glaube, kyrillische Schriftarten.

    Der Teamspeakviewer ist von tsstatus.sebastien.me/

    Der TS3-Viewer sollte so aussehen (teamspeakviewer.com):

    gesperrtes Bild

    Die Ausgabe für den Viewer tsstatus erfolgt über die teamspeak.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div style="width:160px; height:100%; overflow:auto; border:0px solid #840; margin:1em;">
    <?php
    require_once("/www/tsstatus/tsstatus.php");
    $tsstatus = new TSStatus("85.114.150.101", 10011, 3);
    $tsstatus->imagePath = "/tsstatus/img/";
    $tsstatus->showNicknameBox = true;
    $tsstatus->decodeUTF8 = true;
    $tsstatus->timeout = 2;
    echo $tsstatus->render();
    ?>


    Als ich es das erste mal gestartet hatte, stand folgender Wert noch auf "false"

    1
    $tsstatus->decodeUTF8 = true;


    Da sah der Viewer so aus:

    gesperrtes Bild

    Jetzt, wo dieser Wert auf "true" steht, ist die Darstellung nicht mehr ganz so heftig, aber leider sind da, wo Sonderzeichen sein sollten, jetzt Fragezeichen.

    gesperrtes Bild

    Bisher habe ich herausgefunden, dass es an der Kodierung ISO-8859-1 und dessen Umwandlung zu utf-8 liegt bzw. an dem Befehl $decodeUTF8. Also liegt das Problem in der Abfrage, die über die Datei tsstatus.php läuft. Hier der Inhalt:



    Also der Inhalt dieser Datei übersteigt mein Wissen um einiges und ich konnte keine Lösung dafür im Netz finden, deswegen versuche ich es jetzt erstmal hier.

    Kann mir jemand sagen, was zu tun ist, damit die Sonderzeichen, wie oben in der teamspeakviewer.com-Box, angezeigt werden?
    Weiß jemand, warum der Text mittig steht und nicht linkbündig und viel wichtiger, warum ist bei einigen Channelnamen und beim Servernamen ein Zeilenumbruch drin? Im Viewer von teamspeak.com ist doch auch alles einzeilig.

    Vielen Dank im Voraus für die Bemühungen...


    MfG
    Nick


    verwendete ilchClan Version: 1.1 N

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Kaite Mitglied
    Registriert seit
    06.01.2011
    Beiträge
    278
    Beitragswertungen
    7 Beitragspunkte
    Lad dir mal Notepad++ runter und klick dann oben im Menü auf "Kodierung" -> "UTF-8 ohne BOM"
    und dann auf das so genannte Speichern. Dann nochmal hochladen.

    Download Link: notepad-plus-plus.org/
    Chip: externer Link
    Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben. (Andr Gide)
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    =MRT=Nick Mitglied
    Registriert seit
    09.02.2011
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    Hi Kaite,

    vielen Dank erstmal für deine Antwort, aber leider bewirkt das überhaupt nichts. Was hätte denn passieren sollen?

    Hat niemand eine Idee, wie man die Datei in utf-8 ausgibt, damit die Sonderzeichen korrekt dargestellt werden?


    MfG
    Nick
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    IceT33 Mitglied
    Registriert seit
    22.10.2005
    Beiträge
    621
    Beitragswertungen
    10 Beitragspunkte
    eine schnelle lösung gibt es ... sich auf die normale Deutsche bzw Mitteleuropäsche Schreibweise besinnen.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    =MRT=Nick Mitglied
    Registriert seit
    09.02.2011
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    Sollte das ein Witz sein, IceT33???

    Wenn nicht, dann habe ich es nämlich nicht verstanden...
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    she Mitglied
    Registriert seit
    13.11.2010
    Beiträge
    1.115
    Beitragswertungen
    82 Beitragspunkte
    Versuch mal in line 208

    1
    $link = "javascript:tsstatusconnect('" . $this->_host . "','" . $this->_serverDatas["virtualserver_port"] . "','" . htmlentities($var, ENT_NOQUOTES, 'UTF-8') . "')";
    Google+ shelfinger.eu
    Das Wissen verfolgt mich - doch ich bin schneller!
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    =MRT=Nick Mitglied
    Registriert seit
    09.02.2011
    Beiträge
    7
    Beitragswertungen
    0 Beitragspunkte
    Hmm, leider nein, aber auch dir vielen Dank, dass du dir das angeschaut hast. Also, wie ich ja bereits erwähnte, verstehe ich von dem Inhalt dieser Datei nicht viel, aber müsste man nicht schon vorher beginnen. Ich weiß nur, dass teamspeakviewer.com diesen Befehl benutzt.

    1
    script type="text/javascript" charset="utf-8"


    Leider klappt es auch nicht, wenn ich dass in die teamspeak.php schreibe.

    Und was ich mit vorher beginnen meine ist, in Zeile 24 steht:

    1
    public $decodeUTF8;


    und in Zeile 43 steht:

    1
    $this->decodeUTF8 = false;


    und wenn ich mich nicht irre, dann hat das auch was damit zu tun. Zeile 52 - 58:

    1
    2
    3
    4
    5
    6
    7
    private function unescape($str)
    {
        $find = array('\\\\',   "\/",       "\s",       "\p",       "\a",   "\b",   "\f",       "\n",       "\r",   "\t",   "\v");
        $rplc = array(chr(92),  chr(47),    chr(32),    chr(124),   chr(7), chr(8), chr(12),    chr(10),    chr(3), chr(9), chr(11));
        
        return str_replace($find, $rplc, $str);
    }


    und ich denke mal, dass Zeile 112 wohl auch zu dem Problem beiträgt:

    1
    if($this->decodeUTF8) $response = utf8_decode($response);


    Müssen diese Sachen in der tsstatus.php nicht umgeschrieben werden? Kann man da nicht einfach einen anderen Befehl benutzen, ohne decodeUTF8, so dass man in der Ausgabedatei teamspeak.php den Befehl charset="utf-8" benutzen kann?


    MfG
    Nick
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    she Mitglied
    Registriert seit
    13.11.2010
    Beiträge
    1.115
    Beitragswertungen
    82 Beitragspunkte
    1
    script type="text/javascript" charset="utf-8"


    Sollte auch so bleiben zwinker

    1
    public $decodeUTF8;


    Ist eine Variable.

    1
    $this->decodeUTF8 = false;


    Ist sie auf False gestellt hat die Funktion

    1
    if($this->decodeUTF8) $response = utf8_decode($response);


    Nix zutun zwinker

    Deshalb teste mal weiter mit $this->decodeUTF8 = true;

    Du solltest mal ein Screenshot von TeamSpeak selbst hier Posten damit wir wissen welchen Charset du benutzt. bzw. Was eigentlich stehen sollte


    Zuletzt modifiziert von she am 14.08.2011 - 17:05:52
    Google+ shelfinger.eu
    Das Wissen verfolgt mich - doch ich bin schneller!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten