があることがわかります。BOM について学習したことがある場合は、この特殊文字が BOM であることがわかるはずです。その概要については、別の記事「文字列エンコーディング」を参照してください。 、パソコンの文字化け、BOMなどの問題を詳しく解説
Linux で xxd コマンドを使用して、ファイルの 16 進数の内容を表示します。
コードをコピーします コードは次のとおりです:
0000000: 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 [.
0000010: ef bb bf 22 74 69 74 6c 65 22 3a 20 22 22 2c 0a ..."title": "",.
0000020: 20 20 20 20 20 20 20 20 22 70 69 6e 79 69 6e 22 "ピンイン"
0000030: 3a 20 22 22 0a 20 20 20 20 7d 0a 5d 0a : "".
。
「タイトル」の前の特殊文字の 16 進値は ef bb bf であることがわかります。これは、UTF-8 とマークされた BOM です。 BOM の意味は次のとおりです:
コードをコピーします コードは次のとおりです:
開始バイト 文字セット/エンコーディング
EF BB BF UTF-8
FE FF UTF-16/UCS-2、リトルエンディアン(UTF-16LE)
FF FE UTF-16/UCS-2、ビッグエンディアン(UTF-16BE)
FF FE 00 00 UTF-32/UCS-4、リトルエンディアン
00 00 FE FF UTF-32/UCS-4、ビッグエンディア
問題を見つけたら、BOM を検索して削除するだけで簡単に解決できます。 Linux での BOM 関連のコマンドは次のとおりです。
VIMのBOM操作
コードをコピーします コードは次のとおりです:
#BOM追加
:爆弾を設置します
#BOM の削除
:爆弾をセット
#クエリBOM
:爆弾を設置しますか?
UTF-8 エンコーディングで BOM を検索
コードをコピーします コードは次のとおりです:grep -I -r -l $'xEFxBBxBF' /path
svn フックで BOM の送信を無効にすることもできます (次のコードはインターネットからのものであり、検証されていません)
コードをコピーします コードは次のとおりです:
#!/bin/sh
リポス = "$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
FILES=`$SVNLOOK が変更されました -t "$TXN" "$REPOS" awk {'print $2'}`
$FILES のファイルについては
CONTENT=`$SVNLOOK cat -t "$TXN" "$REPOS" "$FILE"`
if echo $CONTENT | xxd -i | grep -q '0xef, 0xbb, 0xbf';
エコー「ボム!」
1番出口
ふぃ
完了しました
最後に、wowdows のコードを変更するために BOM を自動的に追加するメモ帳などのエディタは使用しないほうがよいことを皆さんに思い出していただきたいと思います。問題が発生しやすいためです。
http://www.bkjia.com/PHPjc/824672.htmlwww.bkjia.com
truehttp://www.bkjia.com/PHPjc/824672.html技術記事昨日、同僚が奇妙な問題に遭遇しました。つまり、次のコードは JSON 検証に合格できず、PHP の json_decode 関数でも解析できません。 コードをコピーします コードは次のとおりです: [ { "title": "",...