2016-05-19 4 views
2

Я пытаюсь прочитать XML-файл с помощью xml-ридера. Я создал словарь для хранения типа mime и его соответствующего расширения. Я сохранил mime-тип в этом формате. <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

Как вы _enter_ значение '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

Смежные вопросы