从php插入日语-编码问题

1mrurvl1  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(314)

我正在尝试在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\u general\u 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>

所以,键“test”没有值。。。我能做什么?谢谢!
~解决了~
连接到数据库后使用函数mysql\u set\u charset()解决的问题!

92dk7w1h

92dk7w1h1#

在插入查询之前尝试此操作

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' );

以下内容将帮助您获得更多的想法如何做到这一点。。如果有什么东西不起作用,我就回去。
在这里查看更多
存储和显示unicode字符串(हिन्दी) 使用php和mysql
如何让mysql正确处理utf-8
通过php使用mysql设置utf8
php/mysql存在编码问题

a9wyjsp7

a9wyjsp72#

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

相关问题