2016-07-29 13 views
0

ich Problem mit der Umwandlung von latin1 zu utf8
habe ich 2 Datenbanken erhalten haben, ist zuerst in latin1 Sekunden in utf8latin1 auf utf8 Konvertierung Ausgabe

Beispiel:
select * from latin1_db gibt
"SPÓŁDZIELNIA PRODUCENTÓW TRZODY ODRODZENIE BOBROWNIKI WĄGROWIEC"

aber wenn ich in utf8 db einfügen, wird es
"SPÓ?DZIELNIA PRODUCENTÓW TRZODY ODRODZENIEBOBROWNIKI W?GROWIEC"

wie zu machen, dass beiden String gleich sein werden

i

$str=utf8_encode($str); 
$str=Encoding::fixUTF8($str); 

und

iconv 

aber Ergebnis war nicht gut benutzt.

+0

Siehe http://stackoverflow.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-stored und nach "Fragezeichen" suchen. Stellen Sie auch die HEX wie vorgeschlagen zur Verfügung. Verwenden Sie keine "Fix" -Routinen; es macht das Problem nur komplizierter. –

Antwort

0

Sie haben die Datenbankverbindung Codierung mit

SET NAMES utf-8 

als SQL-Abfrage zu setzen. Sie stellen den Code nicht mit der Datenbankanforderung bereit, daher kann ich Ihren Code nicht aktualisieren, um zu veranschaulichen, was ich meine. Mit PDO sollte es

sein
$pdo = new PDO(
    'mysql:host=yourdbhost;dbname=yourdbname', 
    'username', 
    'password', 
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") 
); 
+0

es gibt "SPÓ? DZIELNIA PRODUCENTÓW TRZODY ODRODZENIE BOBROWNIKI W? GROWIEC" es ändert nicht Buchstaben ł oder ± – binar