ホームページ  >  記事  >  バックエンド開発  >  UTF-8エンコードにおけるBOMの検出と削除について

UTF-8エンコードにおけるBOMの検出と削除について

WBOY
WBOYオリジナル
2016-07-25 09:05:271391ブラウズ
  1. シェル: #!/bin/sh: そのようなファイルまたはディレクトリはありません
  2. PHP: 警告: ヘッダー情報は変更できません - ヘッダーはすでに送信されています
コードをコピーします

UTF-8 エンコーディングの BOM について詳しく説明します。問題を検出して削除するには、次の例でウォーミングアップするとよいでしょう。

    shell>curl -s http://phone.jbxue.com/ | sed -n l
  1. 357273277// JP" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">r$
コードをコピー
上に示すように、最初の 3 バイトは 357、273 です。 、277、これは 8 進数の BOM です。

shell>curl -s http://phone.jbxue.com/ | hexdump -C
00000000 ef bb bf 3c 21 44 4f 43 54 59 50 45 20 68 74 6d |. .00000010 6c 20 50 55 42 4c 49 43 20 22 2d 2f 2f 57 33 43 |l PUBLIC "-//W3C|
  • 00000020 2f 2f 44 54 44 20 58 4 8 54 4d 4c 20 31 2e 30 | // dtd xhtml 1.0 | .w3 |
  • 00000050 2E 6F 72 67 2F 54 52 2F 78 74 6D 6C 31 2F 44 | 00000060 54 44 2F 78 74 6D 6C 31 6e 73 69 |TD/xhtml1 -transi|
  • 00000070 74 69 6f 6e 61 6c 2e 64 74 64 22 3e 0d 0a |tional.dtd">..|
  • コードをコピー
  • 上と同じ 図に示​​すように、最初の 3 バイトEF、BB、BF は 16 進数の BOM です。
  • 注: サードパーティ Web サイトのページが使用されており、サンプルが常に利用可能であるという保証はありません。
  • 実際のプロジェクト開発では、数百または数千のテキスト ファイルが BOM と混在している場合、BOM を含む UTF-8 テキスト ファイルの例がない場合は、vi を使用して検出することができます。いくつかの を構成する場合、関連するコマンドは次のとおりです。 #UTF-8エンコーディングを設定する :set fileencoding=utf-8 #BOM の追加 :爆弾をセットする #BOM の削除 : 爆弾を設定しない #BOM のクエリ :爆弾を設置しますか?
    UTF-8エンコーディングでBOMを検出

    shell> grep -r -I -l $'^xEFxBBxBF' /path

    コードをコピー
    1. UTF-8 エンコードで BOM を削除
    shell> grep -r -I -l $'^xEFxBBxBF' /path | を使用すると、BOM を排除するために、プリコミットフックに関連するコードを追加できます。

    1. #!/bin/sh

    REPOS="$1"

    TXN="$2"

    SVNLOOK=/ usr/bin/svnlook

    FILES=`$SVNLOOK が変更されました -t "$TXN" "$REPOS" | awk '/^[UA]/ {print $2}'`

    for FILE in $FILES; do

    if $SVNLOOK cat -t "$TXN" "$FILE" grep -q $'^xEFxBBxBF' | then

    echo "バイト オーダー マークが見つかります。 in $FILE" 1>&2
    exit 1
    fi
      done

    1. コードをコピー
    2. 興味がありそうな記事:
    3. phpの例: ファイルの先頭にあるBOM情報を検出してクリアします
    4. BOMヘッダー情報を一括削除するためのPhp実装コード
    5. phpでBOMを削除するためのコードを共有する
    6. ページ内の BOM データを PHP でフィルタリングする簡単な例
    phpファイルにBOMヘッダーコードがあるかどうかを検出します
    PHPファイルのBOMをバッチクリアする方法
    phpファイルのBOM機能をチェックしてクリアします UTF-8 BOMによるスタイル混乱の解決策について BOMとDOMの違いの分析
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。