クライアント側を使用して解析するシリアル化されたオブジェクトを返すWCFサービスがあります$.parseJSON()
99% の確率でうまく機能します。残念ながら、無効な文字 (例: "

") がシリアル化され、パーサーがクラッシュすることがあります。
これまでのところ、問題を引き起こすのはこれらの文字だけであり、その文字列をエンコードしてそれを削除する方法を見つけました..しかし、ずさんなようです:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
byte[] isoBytes = Encoding.Convert(utf8, iso, utfBytes);
var sResult = iso.GetString(isoBytes);
これらの文字が表示される前に機能していた方法の 1 つは (これより前に他の無効な文字でいくつかの問題がありました) $.stringify()
、最初に結果を取得してから解析することでした。しかし、このケースには対応していないようです。
すべてのオブジェクトがアプリケーション全体でシリアル化される方法を変更する必要なく、1 つのプロパティだけでこれを行うより良い方法はありますか?