IEのRSS出力で制御コード文字が存在した場合C#での解決方法について

こんにちは。エンジニアのR.Nです。
今回のテクヤンは、
ある特定の豆腐文字(制御コード文字)RSS出力タグの




内の文字列に含まれていた場合の解決方法について、ご紹介致します。

【Internet Explorerのエラー内容】

Internet Explorer ではこのフィードを表示できません
 このフィードにはコード上のエラーが含まれています。

詳細情報
テキストの内容に無効な文字が見つかりました。
 行: XX 文字: XX

<description>・</description>

上記のようなエラーが発生する原因としては、


・文字列内に制御コードが含まれている


ことが考えられますので、以下の対策を施す必要があります。


シフトJISの1バイトコード(半角文字)のエリアの 0x00〜0x1f、0x7f 制御コード文字を除外する


C#でのサンプルは、

【サンプルコード】

   string text = "title または descriptionのすべての文字列";

   System.Text.StringBuilder sb = new System.Text.StringBuilder();
   for (int i = 0; i < text.Length; i++)
   {
       string subStr = text.Substring(i, 1);
       char c = subStr[0];

       if (!((0x00 <= c && c <= 0x1f) || (c == 0x7f)))
       {
           sb.Append(subStr);
       }
   }

   if (sb.Length > 0)
   {
       text = sb.ToString();
   }

   // ※textは制御コードの文字列が除外された状態になる。

上記の通りです。
制御コードの文字列を除外した状態で、




へ設定すると、IEでのエラーを解決することができます。


参考URL
文字コードシフトJIS http://charset.7jp.net/sjis.html