事象
以下のように文字列として同じにもかかわらず
cat 1.xml <div class="ac-container">
cat 2.xml <div class="ac-container">
diffの結果に差分が出る。
$ diff 1.xml 2.xml 1c1 < <div class="ac-container"> --- > <div class="ac-container">
環境情報
$ bash --version GNU bash, バージョン 4.4.12(3)-release (x86_64-unknown-cygwin)
原因/解決策
XMLの空白文字のコードが異なる。
具体的には片方は以下を利用して解読されたテキストで
 
片方は以下を利用していた解読されたテキスト
 
であった。
以下、補足です。
補足
CURL等でXMLでテキストを送付する際には一部の記号をエスケープする必要がありますが
空白文字を以下のUTF-8用で送ると
 
タグとして認識されない場合があります。
視覚的に同じように見える冒頭の2ファイルもbase64で記号化すると空白部分で差異が出るので原因が特定できました。
$ cat 1.xml | base64 PGRpdsKgY2xhc3M9ImFjLWNvbnRhaW5lciI+Cg==
$ cat 2.xml | base64 PGRpdiBjbGFzcz0iYWMtY29udGFpbmVyIj4K
以上、同様の事象でお困りな方の参考になれば幸いです。