-1

実際、ローカルホストのデータベースからデータを取得しているときに問題に直面しています。データベースには、特殊文字を含む行が含まれています。

「よく頑張ったね」など。

しかし、echo $row['lines'];それを使用してデータをフェッチすると、「You?ve done a Good Job」が表示されます。

誰でもこの問題を克服する方法を教えてください。

4

4 に答える 4

2
于 2013-07-16T08:40:00.350 に答える
1

データベースのエンコーディングを確認し、php で接続のエンコーディングを確認し、php-page のエンコーディングを確認してください。最初の 2 つは一致する必要があります。ページのエンコーディングがデータベースのエンコーディングと一致しない場合は、iconvまたはmb_convert_encoding関数の使用を検討する必要があります。

また、html を使用している場合は、正しいメタ タグが必要です。

<meta charset='utf-8'>

また

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

さらに、php から正しいヘッダーを送信すると、次のようになります。

header('Content-type:text/html;charset=utf-8');
于 2013-07-16T08:39:04.000 に答える
0

私がお勧めしないのは、データベースに入力する前に HTML エンコーディングのようなものを使用しようとすることです。これに関する 1 つの問題は、結果をアルファベット順に取得するなど、データへのアクセスがより困難になることです。

私がお勧めするのは、すべてを UTF-8 に切り替えることです。つまり、次のことを意味します。

  • すべてのデータベース テーブル
  • 使用する任意のエディター
  • データを表示するページのメタ タグ
于 2013-07-16T08:44:17.683 に答える
0

エンコードの問題のようです。使ってみて...

$row["lines"] = utf8_encode($row["lines"]);

...そして、ウェブサイトで utf-8 エンコーディングが有効になっていることを確認してください。

于 2013-07-16T08:38:49.720 に答える