акцентированные французские символы - PullRequest
1 голос
/ 01 марта 2010

Есть ли проблема с ASPX для рендеринга символов с французским акцентом?

Я использую utf-8 для кодирования.

Раньше у меня никогда не было таких проблем (но поскольку я впервые работаю на сервере ASP, есть ли какое-нибудь решение?)

например Événements = à ‰ và © nements Journées fériées = Journà © es fériées

Это проблема кодирования? или есть какой-то конкретный код, который мне нужно разместить, чтобы правильно его отобразить.

Вот пример

Страница гласит:

Pour recevoir les communications de l’école par courriel, veuillez nous indiquer votre adresse courriel

Следует читать:

Pour recevoir les communications de l'école par courriel, veuillez nous indiquer votre adresse courriel

Ответы [ 5 ]

3 голосов
/ 01 марта 2010

В чем проблема, точно? Вы установили @ Codepage = 65001 в директивах страницы в верхней части вашего файла? Вы пометили тип содержимого правильной кодировкой, чтобы клиент знал, что он получает?

Если вы видите вопросительные знаки, возможно, вы неправильно установили кодовую страницу ответа. Если вы видите два несвязанных символа вместо одного символа с диакритическим знаком, вы не сказали клиенту, что ему нужно знать для обработки страницы как UTF-8, например,

Response.CodePage = 65001 ;
Response.CharSet = "utf-8" ;

Есть небольшие различия между asp.net и asp-обработкой кодирования, поэтому было бы также полезно, если бы вы более точно указывали, какую технологию вы используете, но это должно помочь вам в этом.

В ASP.Net вы можете установить кодировку для всего сайта в файле web.config, чтобы избежать путаницы с Response.CodePage и Request.CodePage на каждой странице. Вы по-прежнему хотите пометить кодировку Response с помощью элемента meta-содержимого типа http-эквивалента в своем HTML-файле или с помощью Response.Charset.

<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />

Если по какой-то причине вы не хотите использовать web.config, вы должны использовать <% @ CodePage = 65001%> в своем файле .aspx перед выводом текста в директивах страницы.

Похоже, что рассматриваемая страница содержит неправильно закодированный UTF-8. Содержимое идет прямо из файла .aspx или оно извлекается из базы данных или что-то в этом роде?

0 голосов
/ 06 сентября 2012

просто переименуйте файлы .asp вместо .aspx

Это решит проблему.

0 голосов
/ 28 апреля 2010

Попробуйте использовать: Server.HTMLEncode (strToShow)

0 голосов
/ 01 марта 2010

Первым делом я подумал, что вы не отправляете правильные заголовки для utf-8. Но использование средства чтения заголовков на web-sniffer показывает, что заголовки правильные.

Кажется, что проблема в том, что вы преобразовали текст в utf-8 дважды .

Когда я смотрю на исходный HTML-код вашей страницы в Firefox «Просмотр исходного кода» с использованием кодировки ISO-8859-1, ваш пример текста выглядит так:

Pour recevoir les communications de lâ â € ™ œ Cole par Courriel, veuillez nous indiquer votre adresse courriel

То есть 2 не-ASCII символа в слове l'école были преобразованы в 5 байтов, а затем эти 5 байтов были снова преобразованы в 12 байтов.

0 голосов
/ 01 марта 2010

Вместо использования реальных символов, есть ли причина, по которой он не может быть закодирован в HTML?

так вместо

EVENEMENTS

использовать

&Eacute;v&eacute;nements 

и браузер пользователя несет ответственность за правильное отображение символов.

есть полный список на http://www.w3schools.com/tags/ref_entities.asp

...