2

次のマークアップがあります。

    <head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>



    <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    </title>
    <asp:ContentPlaceHolder ID="HeaderContent" runat="server" />
    <link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
    <link href="~/PublicPages/LogIn.css" rel="Stylesheet" type="text/css" />

    </head>
    <body>
    <form id="form1" runat="server">

    <div class="page">
        <div id="header">
    .....

そしてこのweb.config

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <configSections>


    </configSections>
    <system.web>
    <machineKey validation="SHA1" />
    <globalization
      fileEncoding="utf-8"
      requestEncoding="utf-8"
      responseEncoding="utf-8"
      culture="en-US"
      uiCulture="de-DE"
    />

ポストバック時に、Firefox でこのエラーが発生します HTML ドキュメントの文字エンコーディングが宣言されていません。ドキュメントに US-ASCII 範囲外の文字が含まれている場合、一部のブラウザー構成では、ドキュメントが文字化けしてレンダリングされます。ページの文字エンコーディングは、ドキュメントまたは転送プロトコルと空白ページで宣言する必要があります

IE でソースを確認すると、次のように表示されます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>

では、asp.net が wi​​ndows-1252 文字セットのページを返さないようにするにはどうすればよいでしょうか?

4

1 に答える 1

0

確認すべきことがいくつかあるかもしれません。JavaScriptリソースが直接または間接的にWebページにロードされていますか?

ディスクからロードされたリソースファイルが他のASP.NETページでUTF-8エンコードされていない場合、それらはデフォルトのエンコードとしてレンダリングされる可能性があります。リソースファイルのいずれかが、JavaScriptファイルにVSエンコーディングWindows1252をまだ使用している可能性があるかどうかを確認します。すべてのリソースファイルをutf-8タイプに保存すると、設定がutf-8に変更されます。

すべてのASP.NETページにすべての埋め込みリソースのutf-8エンコーディングがあることを確認するには、すべてのASP.NETページに次を追加できます

response.codepage = 65001
response.charset = "utf-8"

また、「 firefox -safe-mode 」を使用して、アドオンなしでセーフモードでFireFoxを起動し、動作が変わるかどうかを確認します。

于 2012-09-17T22:12:50.260 に答える