Специальные символы в выводе html - PullRequest
3 голосов
/ 26 февраля 2012

Я хочу, чтобы такие символы, как 'ø', печатались напрямую, но в источнике 'ø' отображается как ø

Если вывод проходит через Html.Encode(), он не будет отображать правильный символ, но ø

в конфигурации у меня есть

<globalization
  fileEncoding="utf-8"
  requestEncoding="utf-8"
  responseEncoding="utf-8"
  culture="nb-NO"
  uiCulture="nb-NO"
/>

Источник:

<li><%: Html.ActionLink("Støvletter", "ListProducts", "Tag", new { tag = "Stovletter" }, null)%></li>

Это выводит:

<li><a href="/Tag/Stovletter">St&#248;vletter</a></li>

Но выводдолжно выглядеть так:

<li><a href="/Tag/Stovletter">Støvletter</a></li>

Ответы [ 3 ]

3 голосов
/ 26 февраля 2012

Возможно, это не тот ответ, который вы ищете, но, тем не менее, он интересен.

Если вы посмотрите на исходный код HttpEncoder, он предоставит custom HtmlEncoders дляиспользовать вместо используемого по умолчанию WebUtility.HtmlEncode

Я поиграл и нашел HtmlEncoder с именем AntiXSS от Microsoft, который правильно кодирует эти символы.

Я установил его, используя Nuget :

PM> Install-Package AntiXSS 

, а затем обновил свой web.config следующим образом:

<system.web>
    <httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, 
AntiXssLibrary" />
    ....
</system.web>

Как обычный вывод, так и Html.ActionLinks работают.

1 голос
/ 26 февраля 2012

Вы можете попытаться создать вывод с <%= вместо HTML-кода <%:

(я публикую это после вашего положительного комментария к моему комментарию)

1 голос
/ 26 февраля 2012

AFAIK это невозможно, если вы не выберете свою собственную процедуру кодирования HTML (которую я абсолютно рекомендую вам).

Полученный HTML-код правильный, а символ правильно отображается в браузере клиента.HTML предназначен для чтения программами (веб-браузерами), чтобы представить его в удобочитаемой форме, а не для людей.

<li><a href="/Tag/Stovletter">St&#248;vletter</a></li>

- это совершенно правильный HTML, который будет отображаться на клиенте таким образомбраузер:

enter image description here

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