2013-05-28 4 views
1

В моем приложении C# я получаю данные сообщения в виде xml. Внутри xml у меня есть атрибут, получающий как «SmÃ¥senter (Sandvika SmÃ¥senter)». Перед вставкой в ​​базу данных мне нужно закодировать ее как «Småsenter (Sandvika Småsenter)». Я пытался использовать ниже код,Кодирование специальных символов в C#

string name = "Småsenter (Sandvika Småsenter)"; 
name = HttpUtility.HtmlDecode(name); 

также попытался name = HttpUtility.HtmlEncode(name);

Но это не дает ожидаемого выхода. Есть ли какие-либо предложения, чтобы попасть в ожидаемые персонажи.

С уважением

Sangeetha

+9

Похоже, что ваш XML просто разбит, чтобы начать с - почему он не кодирует символ правильно? Что создает этот XML и как вы его разбираете? –

+0

Указывает ли заголовок вашего документа xml кодировку? –

ответ

5

Вы только что столкнулись Mojibake, которая вызывается путем смешивания текстовых кодировок. Вам нужно использовать ту же кодировку для записи и чтения XML, предпочтительно кодировку Unicode, такую ​​как UTF-8. Вы не должны пытаться восстановить сломанную строку, такую ​​как «Smà ¥ senter», а скорее не заставляйте ее не ломаться в первую очередь.

+0

+1, также невозможно автоматически определить кодировку с 100% -ным успехом, т. Е. Имеет такой алгоритм, но иногда не удается найти правильную кодировку –

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