#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 ; } ?> + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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?! + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#5 8. Mai 2012 Zuletzt bearbeitet: 8. Mai 2012 AW: Kyrillische Inhalte aus SQL-DB laden ...immernoch lauter Fragezeichen, trotz deiner Anpassung: PHP: <? phpmysql_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.... + Multi-Zitat Zitieren
#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 ); } + Multi-Zitat Zitieren
#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: + Multi-Zitat Zitieren
#8 8. Mai 2012 AW: Kyrillische Inhalte aus SQL-DB laden Dann Entfern die Funktion "htmlspecialchars" + Multi-Zitat Zitieren
#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? + Multi-Zitat Zitieren
#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' ); + Multi-Zitat Zitieren