0

特定のキャラクターを同等のエンティティに置き換えるのに非常に苦労しています。文字「ā」をstr_replaceしようとしましたが、機能しません。理由がわかりません。私が使用するコード:

$content = str_replace('ā', 'ā',$content);

誰かがいくつかのヒントやそれが機能しない理由の説明さえあれば、私に知らせてください!

アップデート:

上記のコードは文字をエンティティに置き換えませんが(理由はわかりません)、それが主な問題ではありません。文字は正常に表示されますが、file_get_contentsを使用してこのページを読み取り、その後、読み取ったHTMLをデータベースに挿入すると、文字が壊れます。それは、それが挿入されたデータベースですでに破壊されています。

以下に示すすべてのヘッダーはUTF-8であり、データベーステーブルはUTF-8エンコーディングであり、ファイルはUTF-8です。

簡単な修正として、そのDBに挿入する前に、charをそのエンティティに変換したいと思いました。

4

2 に答える 2

1

これを試してください:header('Content-Type: text/html; charset=utf-8'); これにより、ページにUTF8によるすべての有効な文字が表示され、このコードをページの直後に配置します<?php

更新: DBへのすべての接続で試してください:

    $connect = YOUR_MYSQL_CONNECTION();

    mysql_query( "SET NAMES 'utf8';" , $connect );

    mysql_query( "SET CHARACTER SET 'utf8';" , $connect );
于 2012-05-08T14:53:14.357 に答える
1

ā を含む大きな文字列は簡単にアクセスできますか? もしそうなら、htmlentities関数が仕事をするはずです。すべての文字を HTML と同等のものに変換する必要があります。ただし、の同類も に変換し<ます&lt;

于 2012-05-11T07:02:42.017 に答える