@decezeと@Shaktiはあなたの助けに感謝します。
decezeによって投稿された記事リンクの+1(WebアプリでのUnicodeの前面から背面への処理
)そして、
あなたのコメントを読み、答え、そしてもちろんこれらの2つの記事を読んだ後、私はついに私の問題を解決しました。
この問題を解決するためにこれまでに行った手順をリストしました:
-
header('Content-Type: text/html; charset=utf-8');
を追加しました 私のinit.phpファイルの上部にあります - これらの値を格納しているデータベーステーブルフィールドのCHARACTERSETをUTF-8に変更しました。
- MySQL接続文字セットをUTF-8に設定します
mysql_set_charset('utf8', $connection_link_id);
- htmlentities()関数を使用して文字を変換しました
$meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');
これで問題は解決したようですが、この問題を完全に解決するには、次のことを行う必要があります。
- ソースからエンコードされた文字セットを取得します
$source_charset
。 - 文字列がまだ同じエンコーディングでない場合は、文字列のエンコーディングをUTF-8に変更します。このために利用できる唯一のPHP関数は
iconv()
です。 。例:iconv($source_charset, "UTF-8", $meta_title_raw);
$source_charset
を取得するため 私はおそらくいくつかのトリックやマルチチェックを使用する必要があります。ヘッダーやメタタグなどをチェックするように、エンコーディングを検出
上記の手順に改善や欠陥があるかどうかをお知らせください。