2016-05-19 13 views
2

xmlリーダーを使用してxmlファイルを読み取ろうとしています。 mime-typeとそれに対応する拡張子を格納する辞書を作成しました。私はこの形式でmime-typeを保存しました。 <MimeToExtension MimeType="image/x‑portable‑bitmap" Extension=".pbm" />ユニコード文字を解析できません

キー"image/x‑portable‑bitmap"を使用して値形式辞書を取得しようとしました。これは値を返しません。 "image/x-portable-bitmap"

When pasted the value in notepad++

として保存されているので-文字は角括弧に変更されます。どうすれば解決できますか?

FileStream filestream = File.OpenRead(mimeTypeToExtension); 
using (XmlReader reader = XmlReader.Create(filestream)) 
{ 
    while (reader.Read()) 
    { 
     if (reader.NodeType == XmlNodeType.Element) 
     { 
      if (reader.HasAttributes && reader.AttributeCount == 2) 
      { 
       string extension = reader.GetAttribute(0); 
       string mimeType = reader.GetAttribute(1); 
       if (!string.IsNullOrEmpty(mimeType) && !string.IsNullOrEmpty(extension) && 
        !fileTypes.ContainsKey(extension)) 
        fileTypes.Add(extension, mimeType); 
      } 
     } 
    } 
} 
+3

「x-portable-bitmap」の値はどうでしたか?正方形は "ハイフンマイナス"ではなく[別のダッシュ文字](http://www.fileformat.info/info/unicode/category/Pd/list.htm)であることを示しており、リーダーは検出できませんエンコーディング適切なエンコーディングを使用しても、値を使用できなくなるため、問題は解決されません。ブラウザはそれを処理できません。入力を修正してください。 – CodeCaster

+0

ヘルプありがとうございました – eeshwr

答えて

2

これは、インターネット上の任意の場所からMIMEタイプをコピーして貼り付けて間違ったハイフンを取得したためです。

ハイフンは、ノンショックハイフン(Unicode 0x2011)です。 を通常のハイフン(Unicode 0x2d)にします。コード内のハイフンをすべて手動で置き換えてください。

"image/x-portable-bitmap" 

コード/テキスト/その他をコピーするときは、常に注意してください。インターネットから。ほとんどのCMSはプログラマーのニーズを考慮しておらず、一部の文字を置き換えて「見栄えを良くする」か、書式設定の問題を避けるため、この問題は引用符でもよく発生します。

+0

ありがとうございました。 – eeshwr

関連する問題