1

コンテンツに複数のBOM(EF BB BF)文字が含まれているので、それらを削除したいと思います。文字は文字列の真ん中にあります。単にすべてを削除したいと思います。

データは、CKEditorインスタンスから取得したJavaScriptソースから取得されます。次に、変数をPOSTし、バックエンドで文字列として読み取ります。BOMSがそこにあります。今のところ、それらはそのまま保持されますが、これにより、文字が解釈されてコンテンツの途中で表示され始めると、後処理でエラーが発生します。それらは私のCKEditorにコピーペーストされたものから来ているのではないかと思います。

文字列charをcharごとにステップスルーできますが、BOMと比較する方法がわかりません。文字列バイトの16進値を比較し、3バイトシーケンスを比較することはどういうわけか可能でしょうか?

4

2 に答える 2

7

utf-8BOMバイトはに変換され\ufeffます。Unicode文字「ゼロ幅ノーブレークスペース」、それらを見ることができない、それらを聞くことができない。それらを次のように除外します。

   var good = bad.Replace("\ufeff", "");
于 2012-10-23T09:50:27.583 に答える
0

次のことを試してください。

CleanString = DirtyString.Replace("\u00EF\u00BB\u00BF", null);
于 2012-10-23T07:06:26.587 に答える