1

ASPX渲染法文重音字符有问题吗?重音法文字符

我正在使用utf-8进行编码。

我从来没有过任何像这样的问题(但由于这是第一次,我在ASP服务器上的工作有没有解决?)

如 EVENEMENTS = A‰VA©nements Journéesfériées= Journéesféré里埃斯

这是一个编码问题?或者是否有任何特定的代码需要放置才能正确呈现。

这里是example

的页面上写着:

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
+0

你有任何示例代码? – 2010-03-01 17:40:12

+0

问题已经更新我添加了一个链接到网站 – 2010-03-01 17:42:58

+0

没有代码只有纯粹的HTML,我将变成包括箔,但它是没有被读取的法语字符...样品链接是在Q框 – 2010-03-01 17:51:56

回答

3

什么问题,到底是什么?您是否在文件顶部的页面指令中设置了@ Codepage = 65001?你是否用正确的编码标记了内容类型,以便客户知道它获得了什么?

如果您看到问号,很可能是您没有正确设置响应代码页。如果您看到两个不相关的字符代替带有变音符号的单个字符,那么您还没有告诉客户需要知道如何将页面视为UTF-8,例如,

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

有asp.net和编码的ASP处理略有区别,所以它也将是有益的,如果你是更具体的了解您所使用的技术,但应该让你最的方式有。

在ASP.Net,你可以在你的web.config文件中设置的编码站点范围内,这样就可以避免与Response.CodePage和Request.CodePage每一页上搞乱。您仍然希望使用HTML中的meta http-equiv content-type元素或使用Response.Charset来标记响应字符集。

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

如果你不想使用的web.config这出于某种原因,你会使用<%@ CODEPAGE = 65001%>在你输出任何文本,在页面之前,你的.aspx文件指令。

它看起来像问题中的页面包含错误编码的UTF-8。内容是直接来自.aspx文件,还是从数据库或其他内容中提取?

+0

嗨对不起,我想知道如何实现这一点,因为我是所有这些ASP的新手,每次我尝试将它发布在我的源代码中时,它都会给我一个运行时错误。我不知道我是否正确地把它放在正确的位置上。让我知道。谢谢 – 2010-03-01 17:56:30

+0

内容直接来自文件,我该怎么做? – 2010-03-01 18:07:11

+0

我认为你的源文件已损坏,然后。我在十六进制编辑器中看到0a3c703e4a6f75726ec383c2a9657320,这转换为Journées。可能你没有正确保存原始文本到utf-8。 Asp.Net没有对文字进行任何转换。基本上,它看起来像你已经对源文件进行了双重编码,所以你已经采用了UTF-8文本,将其视为Windows-1252,并将文本转换为UTF-8。 – JasonTrue 2010-03-01 18:24:50

-1

而不是使用实际的人物,是有它不能被HTML编码的理由吗?

所以不是

EVENEMENTS

使用

&Eacute;v&eacute;nements 

,然后就变成了用户的浏览器的责任,正确呈现的字符。

有一个在http://www.w3schools.com/tags/ref_entities.asp

+0

好吧,这是为了让我的生活更轻松,而不是编码所有可以将其渲染到正确字符的任何东西...... – 2010-03-01 18:15:33

+1

当您选择使用utf-8时,没有理由使用命名实体,除了专门为HTML。 – JasonTrue 2010-03-01 18:28:48

+0

使用实体会使源不可读取给人类。另外,它会显着增加文件大小。 – PauliL 2010-03-01 18:38:57

0

的完整列表,我的第一个thougt是,你不发送正确的头为UTF-8。 但使用标头阅读器web-sniffer显示标头是正确的。

这个问题似乎是你已经将文本转换为utf-8 两次

当我看使用ISO-8859-1编码网页的HTML源代码的Firefox“查看页面源代码”,您的示例文本显示为:

倒入recevoir莱德拉¢通信, ¬A“¢ÃƒÂ©油菜帕courriel,veuillez理性indiquer VOTRE住址courriel

即,在单词L'高等已被转换成5个字节2非ASCII字符,并且这些5个字节具有然后被再次转换成12个字节。使用

0

尝试:Server.HTMLEncode(strToShow)

-1

只是重命名文件.ASP代替的.aspx

这将解决这一问题。