windows-server-2012 – IIS集成模式外来字符
好的,这让我们发疯了.我们在 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. (编辑:宜春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |