0

PHP と MySQL を使用して HTML で Web ページを作成していますが、ページの実行時にスウェーデン語の文字 ÅÄÖ で問題が発生しました。Å/Ä/Ö ではなく � として表示されます。

HTML メタタグと PHP の両方で文字セットを UTF-8 に設定しました。

<?php
    header('Content-type: text/html; charset=UTF-8'); 
?> 

<meta charset="UTF-8">

また、MySQL はutf8_general_ciすべてのテーブルで照合を実行します。

また、すべてのファイルは、Unicode 署名 (BOM) や正規化形式を使用せずに UTF-8 としてエンコードおよび保存する必要があります。

以前はこれらすべてが完璧に機能していましたが、今日、何をしようとしても、Å/Ä/Ö ではなく � になってしまいます。これをデバッグして問題を見つける良い方法はありますか?

不要な手順はありますか、それとも何かを忘れていますか?

4

3 に答える 3

1

deceze の記事で必要なのは、SET NAMES に関する部分です。

mysql_set_charset('utf8', $connection); //not mysql_query("SET NAMES 'utf8'");

データベース接続が開始された後、PHPコードの先頭にそれを追加するだけです

于 2012-08-27T13:42:00.193 に答える
0

これはスウェーデン語の文字を含む少数のレコードだけですか、それともすべてのレコードですか?

ブラウザーの設定でページのエンコーディングを手動で変更できます。テスト方法は次のとおりです。これを latin1/iso-8854-1 に変更して、utf-8 として間違っているこれらが正しく表示されるかどうかを確認します。

誰かが utf8 をサポートしていないブラウザーを使用しているか、エンコーディングを手動でいじっている可能性があります。

また、データベース接続もutf8であることを確認してください。( set names utf8;)

于 2012-08-27T13:45:01.110 に答える
0

PHP ファイルを UTF-8 エンコーディングで保存してみてください。ファイルは別のもの(おそらくISO-xxxxまたはANSI)で書かれていると思います

Notepad++ でこれを行うには、すべての行を選択してクリップボードにコピーし、エンコード メニューでコーディングを BOM なしの UTF-8 に変更し、すべてを貼り付けて保存します。

于 2012-08-27T13:42:02.707 に答える