引用: データベースの要件により、データのやり取りを容易にし、一貫性のないエンコーディングによって引き起こされる問題を軽減するために、データベースは元の gbk2312 エンコーディングから utf-8 に変更されました。
Webサイト全体をトランスコードする必要があります(gb2312-->utf-8)1 オンラインでバッチ コード変換ツールを見つける
注: 1. このソフトウェアは、ファイルまたはディレクトリの選択をサポートしています。いくつかのオプションの種類またはすべてのファイルがあります。これは便利ですが、注意が必要です。選択したファイルの中に、エンコードが異なるファイルや画像など、トランスコードする必要のないファイルがないか確認してください。一緒にトランスコードしないように注意してください。
2. 複製機能はないので、ファイルを繰り返し選択しないように注意してください(繰り返し選択するとどうなるか、試してみます)
3. 「ファイルのバックアップを保持する」にチェックを入れると、各ファイルに対応する bak ファイルが生成されます。私のプロジェクトは git で管理されているため、バックアップの必要はありません (git 自体に復元機能があります)。方法は詳細によって異なりますが、とにかくこの大きな動きには注意が必要です。
2. bom
を削除します
EditPlus エディターを使用して、トランスコードしたファイルを開きます。下部のステータス バーには、エンコードが「UTF-8+」であることが表示されます。これは、BOM ヘッダーが含まれていることを意味します。
BOM とは何ですか? ネットユーザーの引用: 「UTF-8 エンコードされたファイルでは、BOM はファイルのヘッダーにあり、3 バイトを占め、ファイルが UTF-8 エンコードに属していることを示すために使用されます。BOM を認識するソフトウェアは数多くあります。ヘッダーを認識できますが、BOM ヘッダーを認識できないものもあります。たとえば、PHP が BOM ヘッダーを認識できないのは、メモ帳で UTF-8 エンコーディングを編集した後にエラーが発生する理由でもあります。
単一ファイルの場合は、editplus エディターを使用してファイルを開き、「utf-8」なし (つまり、BOM なし) のファイルとして保存します。
非常に多くのファイルについて、一部のネチズンは BOM ヘッダーをバッチで迅速かつ正確に削除し (元の作成者は見つかりませんでした。共有してくれてありがとう~)、トランスコードされたファイルのルート ディレクトリに php ファイルを作成するスクリプトを共有しました。以下のコードをURLにアクセスアドレスを入力して実行してください:
if (isset($_GET['dir'])){ //设置文件目录
$basedir=$_GET['dir'];
}その他{
$basedir = '.';
}
$auto = 1;
checkdir($basedir);
関数 checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir."/".$file)) {
echo "ファイル名: $basedir/$file ".checkBOM("$basedir/$file")."
";
}その他{
$dirname = $basedir."/".$file;
チェックディレクトリ($ディレクトリ名);
}
}
}
閉じられたir($dh);
}
}
関数 checkBOM ($filename) {
グローバル $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
書き換え ($filename, $rest);
return ("BOM が見つかりました。自動的に削除されました。_http://www.k686.com" );
} その他 {
return ("BOM が見つかりました。");
}
}
それ以外の場合は戻ります (「BOM が見つかりません。」);
}
関数書き換え ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
三、大規模な ZendSdio 批准代替 htm 中の申し立ての gb2312 のコードは utf-8 を使用します
注意: 新規建設の zend 工程、查看 htm が正常であるかどうか表示、結果が乱数である場合、查看工程 htm の编码が utf-8 に設定されているかどうか、 选中工程、全局搜索(ctrl+H)“charset=gb2312”批准量は“charset”になります=utf-8”,
注意: 特定のファイルが外部に取り込まれている可能性があるため、gb2312 として申請しておく必要があるため、これらの例外を除外する必要があり、置き換えることはできませんが、今回コード化されたファイルについては置き換える必要があります。
また、「charset= gb2312」、空格、さまざまな写法都搜一搜などの空格が存在する可能性もあります。4 つ目は、php ファイルの gb2312 (または gbk) であり、utf8、utf-8、gbk、gb2312 などのさまざまな書法も常にチェックされます。