HTML-кодировка .net ISO10646, торговая марка, евро и т. д. - PullRequest
2 голосов
/ 20 июня 2011

У меня постоянный ряд проблем с кодировкой символов для вывода в файл XML через .NET.У меня такое ощущение, что проблема связана с настройкой используемого объекта Response, но я не могу нигде найти правильную настройку.

Если я сделаю следующее:

system.web.httpcontext.current.response.write("€ & ™" & server.HTMLEncode(" € & ™ "))

Я получаю следующий вывод:

€ & ™ € & ™

Вопрос в том, почему кодируются стандартные символы ASCII, а расширенные (?) Символы нет?Есть ли какая-то настройка, которую мне нужно передать объекту сервера, чтобы он преобразовывал символы, такие как евро / торговая марка?

Один из пунктов на странице функции MSDN HTMLEncode гласит:

Любой символ кода ASCII, код которого больше или равен 0x80, преобразуется в & #, где это значение символа ASCII.

1 Ответ

2 голосов
/ 20 июня 2011

Вы, похоже, просматриваете документацию для классических объектов ASP-сервера .

Строки ASP.NET основаны на Unicode, а не на ASCII, а документация нене упоминать ASCII.

Вы можете обеспечить кодировку ASCII, если используете перегрузку, которая принимает TextWriter, инициализированный Encoding.AsciiEncoding.

...