0

我有一个 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 é)

4

0 回答 0