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.

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...