2009-08-17 14 views
2

Ich versuche, einige japanische Wörter in eine MySQL-Tabelle einfügen! Wenn ich "こ ん に ち は" mit phpMyAdmin einfüge, wird das Wort von phpMyAdmin in Ordnung angezeigt. Aber wenn ich versuche, es durch php einzufügen, wie folgt:MySQL - einfügen Japanisch aus PHP - Encoding Troubles

mysql_connect($Host, $User, $Password); 
mysql_select_db($Database); 

$qry = "INSERT INTO table VALUES (0 , 'こんにちは')"; 

echo mysql_query($qry); 

In phpMyAdmin siehe i „ã„ã, „ã« ã¡ã¯“... warum?

Und wenn ich versuche, aus der Datenbank zu holen:

$arr = mysql_fetch_array(mysql_query("SELECT * FROM table where id = 1")); 

echo $arr[1]; 

Der Browser zeigt nichts !!!

Wie kann ich lösen?

Vielen Dank im Voraus für Ihre Hilfe !!!


~ EDIT ~

Meine Datenbankkollatierung ist Setup utf8_general_ci


~ EDIT 2 ~

Ich brauche nicht auf die Ausgabe angezeigt werden eine HTML-Seite, aber die japanischen Wörter werden auf einer XML-Seite gedruckt, deren Codierung auf UTF-8 eingestellt ist.

$plist = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
$plist .= "<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"; 
$plist .= "<plist version=\"1.0\">\n"; 
$plist .= "<array>\n"; 
$plist .= "\t<dict>\n"; 
$plist .= "\t\t<key>test</key>\n"; 
$plist .= "\t\t<string>".$arr[1]."</string>\n"; 
$plist .= "\t</dict>\n"; 
$plist .= "</array>\n"; 
$plist .= "</plist>"; 

echo $plist; 

die Ausgabe dieses Codes ist:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<array> 
    <dict> 
     <key>test</key> 
     <string></string> 
    </dict> 
</array> 
</plist> 

So gibt es keinen Wert für den Schlüssel "Test" ist ... Was kann ich tun? Vielen Dank!


~ ~ GELöST

Probleme nach dem Anschluss an die Datenbank mit der Funktion mysql_set_charset() gelöst!

Antwort

3

versuchen, dies vor dem Einsatz Abfrage

mysql_query("SET NAMES utf8"); 

Auch wenn Sie den richtigen Zeichensatz der Datenbank festgelegt, und der Web-Seite nicht sicher.

Zeichensatz in HTML Kopfabschnitt?

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 

und/oder so etwas wie

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

Istas wird Ihnen helfen, mehr Ideen bekommen, wie es zu tun .. wenn etwas nicht funktioniert commment zurück.

Check hier mehr auf SO

Storing and displaying unicode string (हिन्दी) using PHP and MySQL

How to make MySQL handle UTF-8 properly

setting utf8 with mysql through php

PHP/MySQL with encoding problems

+0

Vielen Dank! der Befehl mysql_query ("SET NAMES utf8"); löst mein Problem beim Einfügen von japanischen Wörtern in die Datenbank! Aber das Problem beim Anzeigen dieser Wörter im XML ist nicht behoben! – BitDrink

+0

Haben Sie die Codierung dort in XML festgelegt? – TigerTiger

+0

Ja, Sie können den XML-Code in der zweiten EDIT-Sektion meines Posts sehen! – BitDrink

0

Sie müssen Sie Datenbank-Zeichensatz auf UTF-8 und Datenbankkollatierung utf8_general_ci (oder andere utf8 Kollation) dann denke ich, dein p Problem gelöst