我正在尝试在mysql表中插入一些日语单词! 如果我使用phpMyAdmin插入'こんにちは',那么从phpMyAdmin可以正确显示该单词。 但是,如果我尝试通过php插入它,如下所示:
mysql_connect($Host, $User, $Password);
mysql_select_db($Database);
$qry = "INSERT INTO table VALUES (0 , 'こんにちは')";
echo mysql_query($qry);
在phpMyAdmin中我看到“ã”ã,“ã”ã¡“”为什么?
如果我尝试从数据库中获取:
$arr = mysql_fetch_array(mysql_query("SELECT * FROM table where id = 1"));
echo $arr[1];
浏览器没有显示任何内容!!!
我该如何解决?
提前感谢您的帮助!!!
〜EDIT〜
我的数据库排序规则设置为utf8_general_ci
〜编辑2~
我不需要在HTML页面上显示输出,但日语单词打印在XML页面上,其编码设置为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;
此代码的输出为:
<?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()解决了问题!
答案 0 :(得分:3)
在插入查询
之前尝试此操作mysql_query("SET NAMES utf8");
还不确定您是否设置了数据库和网页的正确字符集。
HTML Head部分中的Charset?
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
和/或类似
header( 'Content-Type: text/html; charset=utf-8' );
以下内容将帮助您获得更多有关如何操作的建议..如果某些内容无效,则会回复。
在这里查看更多内容
Storing and displaying unicode string (हिन्दी) using PHP and MySQL
How to make MySQL handle UTF-8 properly
答案 1 :(得分:0)
你必须将数据库字符集设置为utf8并将数据库排序设置为utf8_general_ci(或其他utf8排序规则)然后我认为你的问题已经解决了