代码之家  ›  专栏  ›  技术社区  ›  BitDrink

mysql-从php插入日语-编码问题

  •  2
  • BitDrink  · 技术社区  · 16 年前

    我想在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页面上显示输出,但日文单词打印在一个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_set_charset()函数解决了问题!

    2 回复  |  直到 11 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

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

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

    以下内容将帮助您获得更多关于如何做到这一点的想法。如果有什么东西不起作用,请回电。

    在这里查看更多,所以

    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

        2
  •  0
  •   Am1rr3zA    16 年前

    您必须将数据库字符集设置为utf8,将数据库排序设置为utf8_-general_-ci(或其他utf8排序),那么我认为您的问题已经解决了。