ちょっと、私はXMLを使ってデータを保存するアプリケーションを持っています。私は最近、自分のデータファイルを開くことができないユーザーからバグ報告を受け取りました。パーサーは、悪いキャラクターに遭遇したときに明らかに失敗しました。XMLファイルの奇妙な文字(ユーザ入力から)
幸いにも、私は彼女のデータファイルのコピーを持っているので、私は原因を見つけることができましたが、それは何か、またはそれがどのようになったのか分かりません。問題のある文字がある(これは、ユーザーからのすべてのキーボード入力されるように。):
attributeName="Some text then XXX"
「XXX」は六角エディタによれば、ある場合:
0A 0A 00
0Aは改行であります私が言うことができる限り、しかし、どのように地獄のヌル文字の終わりになるだろうか?これは私がこの性質を見た最初のバグです。
ユーザーがコピー&ペーストた場合、これは実際にNULL文字簡単に発生する可能性があるようです(たぶん、ユーザーがウェブサイトまたはWord文書からそれを得ましたか)。 –
これは珍しいことではありません(私は!)、私はそのようなデータをデータベースで見たことがあります。 UIは制御文字をチェックせず、データがxmlとしてシリアライズされたときにのみ問題が発見され、受信側でxml 1.0のコンテンツにこれらの文字を含めることができないため、解析エラーが発生します。 – StaxMan
さて、パーザーがちょうどクラップアウトするのはちょっとイライラします。私は、入力された制御文字を処理(および圧縮)するためにモデルを更新しています。 –