2011-08-16 13 views
1
<?php 
require_once('config.php'); 
require_once 'convertArraytoJson.php'; 

$connection=mysql_connect ("localhost", $databaseuser, $databasepassword); 
//mysql_set_charset('utf8'); //Is this better than the last line? 
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'"); //Which one is better? 
@mysql_select_db ($databasename) or die ("Unable to select database"); 
$query="SELECT `Building` FROM `tablebuilding` WHERE ID=51"; 
$data = mysql_query($query); 
while (true){ 
    $info = mysql_fetch_array ($data, MYSQL_ASSOC); 
    if ($info == false) { 
     break; 
    } 
    $output = $info['Building']; 
} 
//$output is FX Lifestyle X’nter 
$v= htmlspecialchars ($output); //Should I use this? 


$result = json_encode($output); 
//$result is FX Lifestyle X\u2019nter 
echo ($result); 

?> 

これは正しい方法ですか? mysql_set_charset('utf8')これは、MySQLとUTF8でUTF8エンコーディングでデータを取得する正しい方法ですか?

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");との違いは何

が優れています。

+0

JSONをどのように受け取っていますか?受信側は、シーケンスを実際の文字に自動的に変換する必要があります。 –

+2

mysql_set_charset()は、mysql_real_escape_string()がmysql接続のエンコーディングを知っている唯一の方法であるため、これを使用してください。 – Karolis

+0

mysql_query( 'SET NAMES utf8;'); – Chris

答えて

1

JSONは、データ交換のためのオープンスタンダードです。 jsonでエンコードされた文字列を送信すると、JSONをサポートしている場合、クライアントは文字列を正しい文字セットに変換します。 クライアントJavaScriptインタプリタを使用して、クライアントがJSONをサポートしているかどうかを確認してください:

echo "<script>document.write('$result');</script>"; 
+0

良い答え。私はPhP側で働いていることを明確にしなければならないと思います。私はjsonを解読する方法を見つけ出すように見えます。私はその部分を削除します。しかし確かに「正しい? –

+0

はい\ u2019は、[link](http://www.fileformat.info/info/unicode/char/2019/index.htm)のUnicode文字です – jbrond

+0

その場合、私はPhPが正しい。これがphpからutf8データを取得する標準的な方法ですか? –

関連する問題