Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Probleme mit UTF-8 und IE

  1. #1
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255

    Probleme mit UTF-8 und IE

    Ich lese aus einer Datenbank Textpassagen und übergebe diese dem XSLTProzessor. Dabei Konvertiere ich den Text mit php:rawurlencode().
    Bei einem Klick auf den Link wird der div Layer angezeigt und mit dem Text gefüllt. Mit Opera/Konqueror und allen Moz Browsern habe ich keine Probleme.
    Außer IE, der kann den Zeichnsatz nicht Darstellen und macht die üblichen Fehlerdarstellungen. Gibt es eine Möglichkeit das dem IE bei zu bringen?
    PHP-Code:
    <xsl:template match="texte" mode="preview">
    <
    xsl:param name="title" />
    <
    a>
       <
    xsl:attribute name="href">
          <
    xsl:text>javascript:PreviewNews('</xsl:text>
          <xsl:value-of select="." />
          <xsl:text>'
    );</xsl:text>
       </
    xsl:attribute>
       <
    xsl:attribute name="type">
          <
    xsl:text>text/javascript</xsl:text>
       </
    xsl:attribute>
       <
    xsl:attribute name="title">
          <
    xsl:text>Anlesen</xsl:text>
       </
    xsl:attribute>
       <
    xsl:value-of select="$title/>
    </
    a>
    </
    xsl:template
    PHP-Code:
    function PreviewNews(i)
    {
       var 
    div document.getElementById('PreviewLayer');
       
    div.setAttribute'title''Schließen' );
       
    div.style.cursor 'pointer';
       
    div.innerHTML '';
       if ( 
    div.style.display == 'none' )
          
    SwapDisplay('PreviewLayer');

       
    div.appendChilddocument.createTextNodedecodeURI(i) + '...' ) );
       var 
    document.createElement'u' );
       
    u.setAttributeNodedocument.createAttribute'style' ) );
       
    u.style.color 'blue';
       
    u.appendChilddocument.createTextNode'Schließen' ) );
       
    div.appendChilddocument.createElement'br' ) );
       
    div.appendChild(u);

       
    div.onclick = function() {
          
    div.style.display 'none';
       }

    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  2. #2
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Bin in php nicht so bewandert. Aber hast du schon mal versucht den content-type explizit zu setzen.

    Bei Jsps machen wir das so.

    response.setContentType("text/html;charset=UTF-8");
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  3. #3
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Content Type ist gesetzt. Das Problem taucht auch nur bei Javascript auf.
    PS: Bei Ansicht/Codierung auf Automatisch gestellt wählt er auch UTF-8 aus.
    Geändert von undefined (12-07-2006 um 16:29 Uhr)
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  4. #4
    Registrierter Benutzer
    Registriert seit
    16.10.2004
    Beiträge
    19
    Hi undefined,

    das gleiche Problem hatte ich gestern auch. Ich habe dann die Content Type Angabe komplett weggelassen, dann hat es funktioniert. Anders leider nicht. Vielleicht hilft es bei Dir ja auch.

  5. #5
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Hat sich erledigt, das ist ein Bug in IE und Opera ( Opera unter Linux das gleiche Problem).
    Alle anderen Interpretieren ein Javascript genauso wie der Content-Type des Dokumentes worauf es verweist.
    Ich habe es jetzt mit einer USER_AGENT abfrage gelöst.
    Das Problem tritt nur dann auf wenn man ein String mit unescape wieder Decodiert der zuvor mit php rawurlencode codiert wurde. Der XSLTProzessor behandelt diesen String als ASCII und Konvertiert ihn auch Logischerweise nicht.
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

Lesezeichen

Berechtigungen

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