2009-08-17 9 views
2

J'essaie d'insérer des mots japonais dans une table mysql! Si j'insère 'こ ん に ち は' en utilisant phpMyAdmin, le mot est bien affiché de phpMyAdmin. Mais si je tente de l'insérer dans php, comme suit:MySQL - Insérer japonais de PHP - Encodage Troubles

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

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

echo mysql_query($qry); 

En phpMyAdmin je vois « ã « ã « ã« ã¡ã¯ » ... pourquoi?

Et si j'essaie de chercher de la base de données:

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

echo $arr[1]; 

Le navigateur ne montre rien !!!

Comment puis-je résoudre?

Merci d'avance pour votre aide !!!


~ EDIT ~

Mon classement de la base est configuré pour utf8_general_ci


~ EDIT 2 ~

Je ne ai pas besoin pour afficher la sortie sur une page HTML, mais les mots japonais sont imprimés sur une page XML dont le codage est configuré en UTF-8.

$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; 

la sortie de ce code est:

<?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> 

Donc, il n'y a pas de valeur pour le "Test" ... Que puis-je faire? Merci!


~ ~ SOLVED

Problèmes résolus en utilisant la fonction mysql_set_charset() après la connexion à la base de données!

Répondre

3

essayer ceci avant la requête d'insertion

mysql_query("SET NAMES utf8"); 

Aussi ne sais pas si vous définissez le charset correct de la base de données et de la page Web.

Jeu de caractères dans la section de tête HTML?

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

et/ou quelque chose comme

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

Suivants vous aider à obtenir plus d'idées comment le faire .. si quelque chose ne marche pas le travail dos obtenir des commentaires.

contrôle plus ici sur le 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

Merci! la commande mysql_query ("SET NAMES utf8"); résout mon problème à propos de l'insertion de mots japonais dans la base de données! Mais le problème d'affichage de ces mots sur le XML n'est pas résolu! – BitDrink

+0

Avez-vous défini l'encodage en XML? – TigerTiger

+0

Oui, vous pouvez voir le code XML dans la deuxième section EDIT de mon message! – BitDrink

0

vous devez vous mettre en base de données Charset pour la collation UTF8 et base de données utf8_general_ci (ou tout autre UTF8 collation) alors je pense que votre p roblem résolu