加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

windows-server-2012 – IIS集成模式外来字符

发布时间:2020-12-25 10:47:57 所属栏目:Windows 来源:网络整理
导读:好的,这让我们发疯了.我们在 Windows Server 2012和IIS8上运行的ASP.NET 4.0中构建了一个应用程序. 我们网站的几页翻译成多种语言,特别是日语和中文是有问题的. 如果我们将应用程序池置于集成模式 – 某些字符无法正确显示.我们受到了很少的问号. 如果我们

好的,这让我们发疯了.我们在 Windows Server 2012和IIS8上运行的ASP.NET 4.0中构建了一个应用程序.

我们网站的几页翻译成多种语言,特别是日语和中文是有问题的.

如果我们将应用程序池置于集成模式 – 某些字符无法正确显示.我们受到了很少的问号.

如果我们将应用程序池置于经典模式,则所有字符都会正确显示.不幸的是,这不是我们的长期选择,因为它打破了网站上的其他功能.

有趣的事情 – 如果我们更改应用程序池中的“启用32位应用程序”设置 – >高级设置页面仍然显示虚假字符,但它们不正确地显示不同的字符.

最初我们怀疑页面中存在伪造字符或编码问题 – 但我们已经检查了所有内容,并验证了所有内容都是utf-8.将应用程序池切换到32位并看到不正确的字符显示错误导致我认为IIS中可能出现了问题.

在此先感谢您的任何帮助/见解/体验.

这是两个部分:

从https://technet.microsoft.com/en-us/library/cc753449%28v=ws.10%29.aspx起

“在IIS 7中,应用程序池以两种模式之一运行:集成模式和经典模式.应用程序池模式影响服务器处理托管代码请求的方式.如果托管应用程序在具有集成模式的应用程序池中运行,则服务器将使用IIS和ASP.NET的集成请求处理管道来处理请求.但是,如果托管应用程序在具有经典模式的应用程序池中运行,服务器将继续通过Aspnet_isapi.dll路由对托管代码的请求,处理请求与IIS 6.0中运行的应用程序一样.“

https://forums.iis.net/p/1173138/1962242.aspx

一些有类似问题的人有一些修复,强迫IIS 7按照他们想要的方式处理字符集.它的要点是经典/ IIS 6接受您想要的编码,但在管道集成/ IIS 7中的某个地方使用其默认编码.

这里讨论了如何按照你想要的方式设置编码:https://stackoverflow.com/questions/9781157/how-to-set-iis-websites-default-encoding

你可能想要fiddler / firebug的东西来看看它的走向(utf8应该是ISO-8859-1,反之亦然).

最后但并非最不重要的,关于ASP.Net如何处理全球化问题的真实论文:https://support.microsoft.com/en-us/kb/893663.是2.0,但根据我的经验,许多类似的东西延续到更高版本,可能适用于4.0.

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读