0

夜、

クリーニング中の HTML ファイルがあります。これらには、テキスト エディターに次のような無効な Unicode 文字が表示されます。

/B7

これらを、あるべきキャラクター、または選択した代替キャラクターのいずれかに置き換えたい. たとえば、/B7 の文字は中点ですが、ピリオドに置き換えたいと考えています。

ここでの関数: PHP - ブラウザーで表示できないすべての文字を utf8 文字列から削除する高速な方法

無効な文字を削除しますが、それ以上のことをするのに十分なエンコーディングがありません。

4

1 に答える 1

3

あなたのファイルは Windows-1252 でエンコードされている可能性が非常に高く (どこで に0xB7デコードされます·)、gEdit はそれを UTF-8 としてデコードし、無効な UTF-8 バイト (0xB7特定のシーケンスの外にある場合、UTF-8 では無効です) を値として直接表示します I推測してみて。多くの方法でファイルを修正できますが、PHP では次のことができます。

<?php
$file_contents = file_get_contents("brokenfile.txt");
$file_contents = mb_convert_encoding($file_contents, "UTF-8", "Windows-1252");
file_put_contents("brokenfile.txt", $file_contents);

上記のスクリプトは、ファイルを Windows-1252 としてデコードし、UTF-8 としてエンコードします。

テキスト エディターを使用すると、通常は「名前を付けて保存」ダイアログまたは何らかの構成で、ファイルを保存するエンコードを指定できます。エディターを使用する前に、常にエディターのエンコーディングを構成する必要があります。

この変換後にあなたのウェブサイトに表示·される場合、それはブラウザにあなたのコンテンツが Windows-1252 または ISO-8859-1 などであることを伝えていることを意味します。あなたのコンテンツが UTF-8 であることをブラウザーに伝える必要があります:

header("Content-Type: text/html; charset=utf-8");
于 2013-03-21T14:59:31.680 に答える