Как получить форму для понимания символов Юникода? - PullRequest
5 голосов
/ 03 июня 2009

Когда некоторые пользователи моего приложения ASP.NET вводят следующий текст

Тренировка Je bénéficie d'un

Я получаю следующее значение в моем Request.Form:

Тренировка Je b n ficie d un

Сначала на моей странице была установлена ​​кодировка Latin1, и я подумал, что ее изменение на Unicode (UTF8) с использованием следующего метатега поможет:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

Но после изменения я все еще получаю эти "блоки" в Request.Form.

Теперь странная вещь, это происходит, когда я отправляю страницу, которая обслуживается IIS (например, http://localhost/myform.aspx). Если я получаю тот же HTML, сохраняю его локально, открываю файл в браузере напрямую (например, c: \ myform.html) и отправляю его, все в порядке, я вижу символы Юникода в моем Request.Form, как и должно быть.

Есть советы? Я здесь потерян ...

Ответы [ 2 ]

2 голосов
/ 03 июня 2009

Упомянутый вами метатег гарантирует, что содержимое страницы отображается в соответствии с кодовой страницей UTF-8, но не информирует о том, как следует обрабатывать публикуемые данные. Для этого вы должны добавить этот атрибут в тег формы:

<form accept-charset="utf-8" ....>

Не знаю, почему поведение отличается при запуске через IIS и файловую систему.

0 голосов
/ 03 июня 2009

Вы можете попробовать "charset = ISO-8859-1". Я надеюсь, что помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...