[PHP] UTF-8 Zeichenkodierung in Website

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Christian91, 29. Dezember 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 29. Dezember 2009
    UTF-8 Zeichenkodierung in Website

    Ich hab da einen ganz seltsamen Fehler auf unserer Abipage, undzwar ist die Page mit UTF-8 codiert, und im Quelltext wird das dem Browser auch so vermittelt.

    Dennoch stellt sich beim Aufruf der Website Firefox auf die ganz falsche Codierung und die Umlaute werden ganz schrecklich angezeigt ;(

    Könnt ihr mir sagen woran das liegt? Die Page ist die folgende:

    http://abi11.gibt-alles.de/

    MfG Christian

    Im Quelltext steht doch
    Warum verdammt nochmal erscheint das dann nicht ordentlich ^^
     
  2. 29. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website

    Firefox: Ansicht => Zeichenkodierung und UTF-8 auswählen Dann gehts auch einwandfrei ^^

    Das problem ist wohl, dass sich die Kodierung nicht automatisch umstellt denn beim Aufruf ist sie bei mir ISO. Ich schau mal was man dazu findet.
     
  3. 29. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website

    Alternativ kannst du die Umlaute ja mit ihren Entsprechungen kodieren, also ü -> ü
     
  4. 29. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website

    Im HTTP-Header wird auch iso-8859-1 als charset mitgesendet... Hast eventuell vorher im PHP script ein header() Aufruf o.ä.

    Ansonsten vll. auch http://mrfoo.de/archiv/235-Apache-Header-Charset-setzen.html
     
  5. 30. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website

    des umstellen in Firefox will ich den Besuchern nicht zumuten :lol:

    und entsprechende Umlaute umschreiben möcht ich mir nicht zumuten xD
    Das wird mit der Zeit einfach viel zu viel Arbeit, sobald da ein paar Texte online sind

    Also vorher geladen werden nur die mysql datenbank, eine functions und config, aber dort passt die Codierung, in der config steht auch nochmals extra UTF-8.

    Ich hab eine .htaccess angelegt mit folgendem Text: AddDefaultCharset UTF-8

    Selbst das geht nicht ?!?

    Kann es sein dass die Serverbetreiber da einfach eine Kodierung vorschreiben?

    MfG Christian
     
  6. 30. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website

    ich hab für den utf-8 scheiss zwei funktionen die dir den tag retten werden:

    PHP:
    <? php

    //für ne ausgabe von utf-8 zeichen als html
    //sollte auch mit nem iso-8859-* charset klappen
    function  utf8entities ( $string ) {
        
    $string  mb_convert_encoding ( $string 'HTML-ENTITIES' 'UTF-8' );

        
    //hier hat die boardsoftware die zeichen verschluckt... also
        //immer nach "=>" den html-code angeben zb "& quot;" (ohne leerzeichen)
        
    return  strtr ( $string , array(
            
    '"'   =>  '"'
            
    "'"   =>  "'"
            
    '<'   =>  '<'
            
    '>'   =>  '>'
        
    ));
    }

    //mit der funktion kannst du aus nem html-string 
    //wieder nen echten utf-8 string machen
    function  utf8string ( $string ) {
        
    $string  mb_convert_encoding ( $string 'UTF-8' 'HTML-ENTITIES' );
        

        
        
    return  $string ;
    }
    anwenden:
    PHP:
    <? php

    $str 
    "¬▓⌂s▄6®▼D" ;
    print 
    utf8entities ( $str );
     
  7. 30. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website


    Achso, die ganzen Werte kommen aus der Datenbank?

    Dann führe einfach mal vor der allerersten Abfrage folgenden query durch:
    SET NAMES 'utf8'
    bzw.
    SET NAMES 'latin1'

    (probier unbedingt beide Varianten aus!)
     
  8. 30. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website

    klar kann man ewig dran fummeln um wirklich mit utf8 zu arbeiten, aber meine beiden funktionen laufen auf allen systemen und man braucht keine SET-rechte für die db.

    ich speicher einfach das ergebnis der funktion in der db... und da kann die sogar auf ascii stehen und es gibt keine probleme. (allein die übertragung von multibyte-strings in nem query is ne sache für sich)

    php wird erst ab version6 richtig mit unicode umgehen können (ich bin ja mal gespannt wie das in der stable-version klappen soll). bis dahin gibts halt "nur" die mb_* funktionen um mit unicode-strings zu arbeiten.

    ps "<?xml version="1.0" encoding="utf-8"?>" muss man ned hinschreiben, es sei denn du codest XHTML und lieferst das ganze server-seiting als XHTML+XML aus. dann sollte es sogar dastehen, weil der xml-parser sonst bockt.
     
  9. 30. Dezember 2009
    AW: UTF-8 Zeichenkodierung in Website

    Ich danke euch, ich werd das mal testen sobald ich aus der Silvesterstimmung rausbin, weil ab jetzt geht nichts mehr mit PHP und co. Jetzt kommt nur noch Silvesterplanung

    Ich schreib dann wies ausging, vielen Dank den ganzen Vorschlägen, Bewertungen sind raus.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.