web-dev-qa-db-ja.com

PHPでUnicodeデータを表示する方法

table 'abc' data :

tid    title

  1      வெள்ளிக்கிழமை ஐ.

  2      கோலாகல தொடக்க 


$sql=mysql_query("select title from abd where tid='1'");

$row=mysql_fetch_array($sql);

$title = $row['title'];

echo $title;

OutPutは次のように表示されます。

????????????????

でも表示したい

வெள்ளிக்கிழமை ஐ.

解決

<?php
    mysql_query ("set character_set_results='utf8'");   

    $sql=mysql_query("select title from abd where tid='1'");

    $row=mysql_fetch_array($sql);

    $title = $row['title'];

    echo $title;

?>
23
Egglabs

次のようにmysql_connect関数の後に文字エンコードを設定してみてください:

 mysql_query ("set character_set_client='utf8'"); 
 mysql_query ("set character_set_results='utf8'"); 

 mysql_query ("set collation_connection='utf8_general_ci'"); 
37
antyrat

mysqliを使用した[〜#〜] php [〜#〜]の新しいバージョンの場合、mysqlへの接続後に次のコードを使用します。

mysqli_set_charset($link, 'utf8');
10
MohsenB

ブラウザがページをUnicodeとして認識することを確認してください。

通常、これは、使用している文字セットを含む正しいContent-type HTTPヘッダーをサーバーに送信させることで実行できます。


たとえば、次のようなものが機能するはずです。

header('Content-type: text/html; charset=UTF-8');
echo "வெள்ளிக்கிழமை ஐ";


これが機能しても、動的に生成されたページがまだ機能しない場合:

  • mySQLデータベースのデータもUTF-8であることを確認してください
    • これは、MySQLでテーブルごと、または列ごとに設定できます。
  • そして、UTF-8を使用して接続していることを確認してください。

基本的に、すべてのアプリケーションで同じエンコーディングを使用する必要があります。

  • PHPファイル
  • データベース
  • HTTPサーバー
7
Pascal MARTIN

クエリを実行する

SET NAMES 'utf8'

データベースに接続した直後

3
Silver Light
<?php header('Content-type: text/html; charset=UTF-8');echo "<font face='Bamini' size='5'>" . "m.Nkhfd; Fkhh;" ."<br />";
echo "<font face='Bamini' size='10'>" . "m.Nkhfd; Fkhh;" ."<br />";
?>

or

<?php
header('Content-type: text/html; charset=UTF-8');
echo "வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ à®";
?>
0
Mohan Kumar

最初に、mysqlデータ形式をutf-8に変換する必要があります。oreillyによるこの素晴らしい記事を参照してください。

MySQLデータをUTF-8に変換

その後、ページのエンコードタイプがutf-8であることを確認します。

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