web-dev-qa-db-ja.com

ヒンディー語のユニコードでデータを保存する方法

アプリケーションにPHPMySQLを使用しています。

質問は:

  1. MySQLनवीन खेतिहर उपकरण।読み取り可能な形式またはनिलेस र पà¥à¤¬形式でデータを保存する方法

  2. ユーザーがテキストボックスにデータを入力して送信をクリックすると、その時点で異なる形式のデータが取得されます。変換してMySQLに読み取り可能な形式で保存する必要があるのは何ですか。

13
nilesh

Utf8文字セットと_utf8_general_ci_照合を選択します。

明らかに、(ヒンディー語のテキストを格納する)フィールドの照合順序は_utf8_general_ci_である必要があります。

テーブルフィールドを変更するには、次を実行します。

_ALTER TABLE `<table_name>` CHANGE `<field_name>` `<field_name>` VARCHAR(100) 
CHARSET utf8 COLLATE utf8_general_ci DEFAULT '' NOT NULL;
_

データベースに接続したら、最初に次のステートメントを実行します

_mysql_set_charset('utf8');
_

例えば:

_//setting character set
mysql_set_charset('utf8');

//insert Hindi text
mysql_query("INSERT INTO ....");
_

データを取得するには

_//setting character set
mysql_set_charset('utf8');

//select Hindi text
mysql_query("SELECT * FROM ....");
_

ブラウザでUnicodeテキスト(ヒンディー語など)を印刷する前に、メタタグを追加して、そのページのコンテンツタイプを設定する必要があります。

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

例えば:

_<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Example Unicode</title>
</head>

<body>
<?php echo $hindiText; ?>
</body>
</html>
_

更新

mysql_query("SET CHARACTER SET utf8") has changed to mysql_set_charset( 'utf8');これは、文字セットを変更するための推奨される方法です。 mysql_query()を使用して設定する(SET NAMES utf8など)ことはお勧めしません。参照 http://php.net/manual/en/function.mysql-set-charset.php *

22
rajukoyilandy

テーブルで次のコマンドを実行するだけです。

ALTER TABLE <tablename> CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

注:より高速であると言われているため、utf8_general_ciではなくut8_unicode_ciを使用する必要があります。 tf8_general_ciとutf8_unicode_ciの違いは何ですか

3
Sorter

文字セットでテーブルを変更する必要はありません。ただし、データベースはutf8_unicode_ciである必要があります。

データベースに接続している間は、この行のみを追加する必要があります。 "mysqli_set_charset($ con、 'utf8')"

    $con = mysqli_connect(DB_Host, DB_USER, DB_PASSWORD, DB_DATABASE);
    mysqli_set_charset($con, 'utf8');
    mysqli_query($con, $sql);
0
Dinesh Sarak

COLLATEをutf8_general_ciに変換した後、この行を使用しますmysqli_set_charset($ con、 'utf8');クエリの下の$ conとmysqli_query()の間。

$ con = mysqli_connect($ Host、$ user、$ pass、$ db)またはdie( 'Unable to connect');

$ sql = "your query ..";

mysqli_set_charset($ con、 'utf8');

$ result = mysqli_query($ con、$ sql);

0
Jiten Basnet