我有一个ASP.NET页面,其标题中定义的编码只加载了一次正确的编码,然后显示没有编码的数据(ASCII?)。
HTML标题的写法如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<meta http-equiv="content-type" content="text/html" />
<meta http-equiv="charset" content="utf-8" />
应该显示为UTF-8的数据从SQL中的nvarchar单元格中获取,并放入ASP.Net中的cookie中。当页面第一次重新加载时,它似乎没问题:
Salé
然后对于所有其他重定向/刷新,它显示为:
Salé
在浏览器中检查错误页面的来源时,charset元素位于源代码中。
我的标题错了吗?如果没有,我会深入研究我的代码。
[编辑]
我尝试使用<head>
中的runat =“server”以编程方式更改标头,但它无效。
Dim meta As System.Web.UI.HtmlControls.HtmlMeta = New System.Web.UI.HtmlControls.HtmlMeta()
meta.HttpEquiv = "content-type"
meta.Content = Response.ContentType + "; charset=" + Response.ContentEncoding.HeaderName
Page.Header.Controls.Add(meta)
[编辑]
发现了类似的问题:UTF-8 problems with characters from MySQL database (e.g. é as é)