更改单个页面的asp.net请求/响应编码

时间:2014-10-24 20:09:45

标签: asp.net encoding

我的web.config中有以下设置(不幸的是)

<globalization fileEncoding="Windows-1252" requestEncoding="Windows-1252" responseEncoding="Windows-1252" />

如果我想将一个页面的请求编码更改为UTF8,我不能仅根据http://msdn.microsoft.com/en-us/library/39d1w2xf(v=vs.100).aspx使用<%@ Page RequestEncoding="utf-8" ResponseEncoding="utf-8" %>,因为这些属性根本不存在。

如果我将代码添加到我的页面代码

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    Me.Request.ContentEncoding = Encoding.UTF8
End Sub

强制UTF8作为请求编码,它似乎根本不起作用。但是,如果我将web.config更改为使用<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />,那么它适用于此页面。但我不想在全球范围内更改设置。

有人有什么建议吗?

1 个答案:

答案 0 :(得分:3)

您可以使用location文件中的Web.config部分为单个页面或文件夹设置特定属性。在您的情况下,您应该添加类似于以下的配置:

<configuration>
    <system.web>
        <globalization fileEncoding="Windows-1252" requestEncoding="Windows-1252" responseEncoding="Windows-1252" />
    </system.web>
    <location path="yourfile.aspx">
        <system.web>
            <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
        </system.web>
    </location>
<configuration>