MySQL - PHP japon eklemek - Bela Kodlama

2 Cevap php

I'm trying to insert some japanese words in a mysql table! If I insert 'こんにちは' using phpMyAdmin, the word is displayed fine from phpMyAdmin. But if I try to insert it through php, as follow:

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

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

echo mysql_query($qry);

PhpMyAdmin i neden ... "a", "ã« ã ¡ã ¯ "bakın?

Ve ben veritabanından almak için çalışırsanız:

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

echo $arr[1];

Tarayıcı hiçbir şey gösterir!

Nasıl çözebilirim?

Yardımlarınız için şimdiden teşekkür ederiz!


~EDIT~

Benim veritabanı harmanlama utf8_general_ci için kurulum


~EDIT 2~

Ben bir HTML sayfası üzerinde çıkışını görüntülemek için gerekmez, ama japonca kelime olan kodlama UTF-8 kurulum XML sayfaya yazdırılır.

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

Bu kodun çıktısı:

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

Yani, anahtar "test" ... Ben ne yapabilirim için hiçbir değeri yoktur? Teşekkürler!


~ SOLVED ~

Sorunları veritabanına bağlandıktan sonra () işlevini mysql_set_charset kullanılarak çözülmüştür!

2 Cevap

insert sorgudan önce bu deneyin

mysql_query("SET NAMES utf8");

Ayrıca değil emin veritabanının doğru charset ayarlamak ve web sayfasının eğer.

HTML Başkanı bölümünde charset?

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

ve / veya gibi bir şey

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

Aşağıdakilerden şey geri commment işe yaramazsa eğer .. bunu yapmak için nasıl daha fazla fikir almak yardımcı olacaktır.

SO burada daha kontrol

http://stackoverflow.com/questions/1198701/storing-and-displaying-unicode-string-using-php-and-mysql/1198713#1198713

http://stackoverflow.com/questions/202205/how-to-make-mysql-handle-utf-8-properly/202246

http://stackoverflow.com/questions/624301/setting-utf8-with-mysql-through-php

http://stackoverflow.com/questions/405684/php-mysql-with-encoding-problems

o zaman ben senin sorunun çözdüm utf8_general_ci (ya da diğer utf8 harmanlama) için utf8 ve veritabanı harmanlama size Veritabanı charset'in ayarlamanız gerekir