我有一个 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é
在浏览器中检查错误页面的源时,字符集元位于源中。
我的标题错了吗?如果没有,我将深入研究我的代码。
[编辑]
我尝试在 中使用 runat="server" 以编程方式更改标头<head>
,但它不起作用。
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 questions with characters from MySQL database (eg as é)