[PHP] [Gelöst] Kyrillische Inhalte aus SQL-DB laden

Dieses Thema im Forum "Webentwicklung" wurde erstellt von SidDasFaultier, 8. Mai 2012 .

  1. 8. Mai 2012
    Zuletzt bearbeitet: 8. Mai 2012
    [Gelöst] Kyrillische Inhalte aus SQL-DB laden

    Moin Rushler,

    ich möchte aus einer Datenbank (in der die kyrillischen Inhalte sind) per PHP verschiedene Inhalte laden. Leider kommen bei mir nur "?" an.

    Weiß jemand Rat...hat bestimmt wieder was mit der Codierung zu tun oder?

    Hier mal mein Code aus der PHP-Datei:

    PHP:
    <? php
    mysql_connect
    ( "localhost" , "xxx" , "xxx" ) or die ( "Keine Verbindung moeglich" );
    mysql_select_db ( "xxx" ) or die ( "Die Datenbank existiert nicht." );
    $ausgabe = mysql_query ( "SELECT content FROM contrexx_content WHERE id=314;" ) or die ( mysql_error ());
    while(
    $row  mysql_fetch_object ( $ausgabe ))
    {
      echo 
    $row -> content ;
    }
    ?> 
     
  2. 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    utf-8 client- und server-seitig verwenden, dann klappt das auch mit den sonderzeichen.
     
    1 Person gefällt das.
  3. 8. Mai 2012
    Zuletzt bearbeitet: 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    ...in meiner SQL-DB ist alles auf UFT-8 gestellt:

    Code:
    Kollation: utf8_unicode_ci
    und meine PHP-Datei habe ich auch mit der Kodierung UTF-8 angelegt.

    Muss ich noch etwas auf UTF-8 stellen? Weil bei mir zeigt es trotzdem nur ? an.

    EDIT: Und in der Seite in der die PHP-Datei geladen wird, ist im Quellcode folgender Befehl drin:

    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    
    Also ist doch alles auf UFT-8 gestellt?!
     
  4. 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    Nach dem du die Verbindung hergestellt und die DB Ausgewählt hast mach folgendes:

    Code:
    mysql_query( "set names utf8", $sql );
     
    1 Person gefällt das.
  5. 8. Mai 2012
    Zuletzt bearbeitet: 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    ...immernoch lauter Fragezeichen, trotz deiner Anpassung:
    PHP:
    <? php
    mysql_connect
    ( "localhost" , "xxx" , "xxx" ) or die ( "Keine Verbindung moeglich" );
    mysql_select_db ( "xxx" ) or die ( "Die Datenbank existiert nicht." );
    mysql_query "set names utf8" $sql  ); 
    $ausgabe = mysql_query ( "SELECT content FROM contrexx_content WHERE id=1105;" ) or die ( mysql_error ());
    while(
    $row  mysql_fetch_object ( $ausgabe ))
    {
      echo 
    $row -> content ;
    }
    ?> 
    Das kommt raus wenn ich die Seite aufrufe:
    Code:
    ????? «?????» ?????????? ????????????????????? ?????? ? ???????????? ??? ????????? ?????????. ?? ???????????, ???????????? ? ?????????? ?????????????? ??????? ??? ?????????????? ???????????? ? ????? ??? 60 -?? ??????? ????.
     
    ??????????????, ???????? ? ???????? ???????? ??????? ???????? ????????? ????????? ????? «?????» ? ????? ????????? ????????? ? ? ???????????? ???????????????.
    
    ??? ????? 150 ??? ?? ???????? ???????? ????????? ? ??????????? ? ????????????????????? ??????????????. ? ?????? 90-? ????? ?? ??????? ??? ???? ????? ?????????? ????? ?????? ?????????? ? ????????? ?????????????????? ???????????? ? ??????????????????? ??????? ????????????? ??? ???????????? ???????????? ??????????.
    
    ?????? ???? ????? ???????? ???????? ??????? ????? ??????????. ??????????? ?? 150-?????? ???? ? ???????? ??????????? ??????????, ?? ??????? ? ???????? ???????, ????????? ??????? ??????????????? ?????????????? ????????? ??????????. ??? ??????? ????? ???????? ? ???? ??? ???????????? ????????????? ???????????? ? ??????????, ??? ? ???????????? ???????????? ?????????.
    
    ?????? ???????? ????????? ????? «?????» ?????????? ????????????, ??????????? ???????????? ? ??????? ?????? ??? ?????????? ???????????????????? ?? ????????????? ?????.
    Und das Bild das über dem Text steht lädt er ohne Probleme und wird angezeigt....
     
  6. 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    PHP:
    <? php

    header
    ( "Content-Type: text/html; charset=utf-8" );

    $sql  mysql_connect ( "localhost" , "root" , "l1863asco" ) or die ( "Keine Verbindung moeglich" );
    mysql_select_db ( "lasco" $sql ) or die ( "Die Datenbank existiert nicht." );
    mysql_query "set names utf8" $sql  ); 

    $ausgabe = mysql_query ( "SELECT content FROM contrexx_content WHERE id=1105;" $sql ) or die ( mysql_error ());
    while(
    $row  mysql_fetch_object ( $ausgabe ))
    {
      echo 
    htmlspecialchars $row -> content  );
    }
     
  7. 8. Mai 2012
    Zuletzt bearbeitet: 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    ...ah sehr gut jetzt werden zumindest keine ? mehr ausgegeben...aber jetzt hat sich ein neues Problem aufgetan, denn nun wird der Quellcode nicht umgesetzt sondern ausgegeben:

     
  8. 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    Dann Entfern die Funktion "htmlspecialchars"
     
  9. 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    Super funktioniert einwandfrei! THX!

    Und an was hat das alles jetzt genau gelegen? War also ein Codierungproblem?
     
  10. 8. Mai 2012
    Zuletzt bearbeitet: 8. Mai 2012
    AW: Kyrillische Inhalte aus SQL-DB laden

    auszug aus meinem code ($this -> PDO)
    PHP:
    // force utf-8 mode
    $this -> exec ( 'SET NAMES "utf8"' );
    $this -> exec ( 'SET CHARACTER SET "utf8"' );
    zudem am besten per php-header noch utf-8 senden und im html-quelltext noch entsprechend das charset setzen, dann sollte es keine probleme mehr geben.

    (php 5.4 sendet automatisch nen utf-8 header)

    htmlspecialchars mit utf-8:
    PHP:
    htmlspecialchars ( $str ENT_COMPAT 'UTF-8' );
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.