Специальный символ в выводе HTML, вероятно из-за проблемы с кодировкой - PullRequest
2 голосов
/ 15 декабря 2010

Я вижу специальный символ на странице ASP .NET, которую я отображаю.Эта страница считывает это содержимое как XML-ответ от службы REST.

Если я загружаю XML в браузер, он отображает "-" нормально.(Он длиннее обычного тире:))

Но при печати на повторителе страницы ASPX с использованием EVAL отображается специальный символ.

На странице есть метатег.

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Хотя браузер обнаруживает кодировку страницы как UTF-8.

Я ищу решение, чтобы избавиться от специального символа.

1 Ответ

2 голосов
/ 15 декабря 2010

Символ, вероятно, является кодом ASCII 150 или 151. Некоторые программы (особенно MS-Word) используют их для тире и длинных тире.Проблема заключается в том, что кодировка ISO-8859-1 не отображает символы в диапазоне от 128 до 159 с каким-либо значением, поэтому вы не можете быть уверены, как браузер будет отображать этот символ.

Следующая функция (только что набрано,проверено) преобразует исходную строку из 8859-1 в UTF-8

function string MakeUTF8String(string SourceStr)
{
   byte[] b = Encoding.GetEncoding("iso-8859-1").GetBytes(SourceStr)
   return System.Text.Encoding.UTF8.GetString(b);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...