【问题标题】:MySQL - insert japanese from PHP - Encoding TroublesMySQL - 从 PHP 插入日语 - 编码问题
【发布时间】:2010-11-20 05:03:13
【问题描述】:

我正在尝试在 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];

浏览器什么都不显示!!!

我该如何解决?

提前感谢您的帮助!!!


~编辑~

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


~编辑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()解决的问题!

【问题讨论】:

标签: php mysql database unicode encoding


【解决方案1】:

在插入查询之前试试这个

mysql_query("SET NAMES utf8");

也不确定您是否为数据库和网页设置了正确的字符集。

HTML Head 部分中的字符集?

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

和/或类似的东西

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

以下内容将帮助您获得更多关于如何做的想法.. 如果有什么不起作用,请回复评论。

在这里查看更多关于 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

【讨论】:

  • 谢谢!命令 mysql_query("SET NAMES utf8");解决了我在数据库中插入日语单词的问题!但是在XML上显示这些词的问题并没有解决!
  • 你是否在 XML 中设置了编码?
  • 是的,你可以在我帖子的第二个编辑部分看到 XML 代码!
【解决方案2】:

您必须将数据库字符集设置为 utf8 并将数据库排序规则设置为 utf8_general_ci(或其他 utf8 排序规则),然后我认为您的问题解决了

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多