2009-08-17 42 views
2

我试图在mysql表中插入一些日语单词! 如果我使用phpMyAdmin插入'こんにちは',这个词在phpMyAdmin中显示得很好。 但是,如果我试图通过PHP来插入,如下:MySQL - 从PHP插入日语 - 编码问题

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

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

echo mysql_query($qry); 

在phpMyAdmin我看到“一个个”,“A«ã¡ã¯” ......为什么?

如果我尝试从数据库中获取:

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

echo $arr[1]; 

浏览器显示什么!

我该如何解决?

预先感谢您的帮助!


〜编辑〜

我的数据库排序规则是设置于utf8_general_ci


〜EDIT 2〜

我并不需要在显示输出一个HTML页面,但日文单词被打印在编码设置为UTF-8的XML页面上。

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

这段代码的输出是:

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

所以,有一个关键的“测试”没有价值......我该怎么办?谢谢!


〜解决〜连接到数据库后,使用功能mysql_set_charset()解决

问题!

回答

3

尝试此插入查询

mysql_query("SET NAMES utf8"); 

而且不知道你是否设置数据库的字符集正确之前,和网页的。

HTML头部分的字符集?

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

和/或类似

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

追随中会帮助你获得更多的想法如何做到这一点..如果事情不工作commment回来。

检查更这里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

谢谢! 命令mysql_query(“SET NAMES utf8”);解决了我有关在数据库中插入日语单词的问题! 但是,在XML上显示这些词的问题尚未解决! – BitDrink 2009-08-17 11:08:24

+0

您是否在XML中设置了编码? – TigerTiger 2009-08-17 11:14:00

+0

是的,你可以在我的文章的第二个编辑部分看到XML代码! – BitDrink 2009-08-17 11:25:19

0

必须数据库字符集设置你UTF8和数据库归类到utf8_general_ci(或其他UTF8整理),然后我认为你的p roblem solved