-3

ページのエンコーディングを に設定しutf8、メタ タグでもutf8.

ただし、データベースから値を取得しているときは、代わりに疑問符の付いたひし形を付けています-文字を知らないと仮定しています。

文字はエです。エコーを行う場合é; ページ上では通常どおり表示されます。また、HTMLで手動で記述した場合。ただし、PDO を使用してデータベース呼び出しから同じ値を取得すると、.</p>

私はそのPDO設定を想定しています。私はもう試した:

$db->exec("SET NAMES 'utf8';");

しかし、これでは解決しません。

助言がありますか?

4

1 に答える 1

2

途中でうまくいかないことがたくさんあります。通常、utf-8 を使用してソース ファイルをエンコードし、utf-8 を使用してデータベース接続を開き、データベース テーブルを utf-8 として定義する必要があります。

物事を明確にするのに役立った @deceze の素晴らしい記事はhttp://kunststube.net/frontback/です。

あなたのケースで試すことができる最も明白なことは次のとおりです。

  1. ソース ファイルを utf8 エンコーディングで保存します。このオプションは、Notepad++ や Crimpson Editor などのエディターに存在します。
  2. utf8 オプションで PDO 接続を作成します。

    $connection = new PDO('mysql:host='.$this->host.';dbname='.$this->db_name.';charset=utf8', $this->user, $this->pass,array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

  3. テーブルが utf-8 でエンコードされており、フォームにオプションがあることを確認してください。

    < form action="action.php" accept-charset="utf-8">

更新: utf8_encode で問題が解決した可能性がありますが、PHP からデータベースへの変換とその逆の変換がどこかに間違っています。または間違ったファイルエンコーディング。問題の根本を修正する必要があります。そうすれば、utf8_encode は不要になります。

于 2013-07-12T21:57:40.060 に答える