3

データベースにスペイン語で質問と回答を含むテーブルを保存する必要がありますが、私が直面している問題は、どの方法を試しても、スペイン語のアルファベット (¿、ñ、 á、é など) 文字列出力に表示されます。いくつかの文字を使用すると、データベース (á、é、í、ó、ú) にあることがわかりますが、文字列には表示されません。¿ は私のデータベースに入力することさえできません。次に、 ñ は私のデータベースにはありませんが、代わりに ? が表示されます。シンボル。すべての場合において、php ファイル出力の文字列は null になります。これを修正して適切な出力を得るにはどうすればよいですか? ありがとう。

ここに私のデータベースがどのように見えるかがあります:

ここに画像の説明を入力

ここに私のphpファイルで使用するコードがあります

<?php

$databasehost = "localhost";
$databasename = "Cuestionario";
$databaseusername ="user";
$databasepassword = "password";

$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or  die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());

$query = "SELECT * FROM Cuestionario_Spanish";
$sth = mysql_query($query);

if (mysql_errno()) { 
header("HTTP/1.1 500 Internal Server Error");
echo $query.'\n';
echo mysql_error(); 
}
else
{
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
    $rows[] = $r;
}
print json_encode($rows);
}

?>  

これは私が得る結果です:

ここに画像の説明を入力

4

1 に答える 1

2

文字セットを定義する必要があります。

<?php

$databasehost = "localhost";
$databasename = "Cuestionario";
$databaseusername ="user";
$databasepassword = "password";

$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or  die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());
mysql_query("SET NAMES 'utf8'"); //This will FORCE SET CHARSET to utf-8

$query = "SELECT * FROM Cuestionario_Spanish";
$sth = mysql_query($query);

if (mysql_errno()) { 
header("HTTP/1.1 500 Internal Server Error");
echo $query.'\n';
echo mysql_error(); 
}
else
{
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
    $rows[] = $r;
}
print json_encode($rows);
}

?>  

楽しみ!:)

于 2012-09-03T19:29:33.933 に答える