ヒンディー語のテキストをMySQLデータベースに保存し、PHPスクリプトを使用して取得し、Webページに表示する必要があります。私は次のようにしました:PHPとMySQLを使用してUnicode文字列(हिन्दी)を保存して表示する
データベースを作成し、そのエンコーディングをUTF-8に設定し、照合順序をutf8_bin
に設定しました。 テーブルにvarcharフィールドを追加し、charsetプロパティでUTF-8テキストを受け入れるように設定しました。
次に、データを追加するように設定しました。ここで私はexisting siteからデータをコピーしなければならなかった。 ヒンディー語のテキストは次のようになります。सूर्योदय:05:30
私はこのテキストを自分のデータベースに直接コピーし、PHPコードecho(utf8_encode($string))
を使用してデータを表示しました。そうすると、ブラウザは私に "??????"を示しました。
ブラウザで「ソースを表示」に移動して、テキストのUTFに相当するものを挿入した場合、सूर्योदयはसूर्योदय
に変換されます。
सूर्योदय
を入力してデータベースに保存すると、完全に変換されます。
私が知りたいことは、私がデータベースに直接保存して、それをフェッチし、PHPを使用して自分のWebページに表示する方法です。
また、सूर्योदयと入力すると、私にसूर्योदय
となるスクリプトがあるかどうかわかります。
ソリューションは、私は私のために働いた次のサンプルスクリプトを書いた
を発見しました。
CREATE TABLE `hindi` (
`data` varchar(1000) character set utf8 collate utf8_bin default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `hindi` VALUES ('सूर्योदय');
今、私の質問は、どのようにそれは「META」やヘッダ情報を指定せずに動作しなかったされている、それはヒンディー語UTF文字列を格納し、私のデータベースのためにあまりにも
<html>
<head>
<title>Hindi</title></head>
<body>
<?php
include("connection.php"); //simple connection setting
$result = mysql_query("SET NAMES utf8"); //the main trick
$cmd = "select * from hindi";
$result = mysql_query($cmd);
while ($myrow = mysql_fetch_row($result))
{
echo ($myrow[0]);
}
?>
</body>
</html>
ダンプ他の誰かを役に立てば幸い?
ありがとうございます!
また:http://stackoverflow.com/questions/1085093/strategy-for-supporting-unicode-multi-language-in-php5/ – deceze
"NAMESのUTF8を設定し、" 私のためのトリックをやりました!ありがとう –
なぜヘッダーを設定しなくても動作しましたか? –