http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 25413|回复: 2

[IIS] 彻底解决“在多字节的目标代码页中,没有此Unicode字符可以映射到的字符”

[复制链接]
发表于 2016-8-18 10:39:19 | 显示全部楼层 |阅读模式
[C#] 纯文本查看 复制代码
[ArgumentOutOfRangeException: 在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符。 (异常来自 HRESULT:0x80070459)]
   System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) +0
   System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode) +13563503
   System.Web.Hosting.IIS7WorkerRequest.GetServerVariableInternal(String name) +50
   System.Web.Hosting.IIS7WorkerRequest.ReadRequestHeaders() +144
   System.Web.Hosting.IIS7WorkerRequest.GetKnownRequestHeader(Int32 index) +109
   System.Web.HttpWorkerRequest.HasEntityBody() +27
   System.Web.HttpRequest.GetEncodingFromHeaders() +126
   System.Web.HttpRequest.get_ContentEncoding() +162
   System.Web.HttpRequest.get_QueryStringEncoding() +10
   System.Web.HttpRequest.get_QueryStringText() +209
   System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +87
   System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +55


我相信有不少同学都看到过类似的问题
上面那句“在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符”对应的英文是
[C#] 纯文本查看 复制代码
No mapping for the Unicode character exists in the target multi-byte code page.

博客园的dudu是这样解决的
[C#] 纯文本查看 复制代码
<rule name="block_invalid_tag_url" stopProcessing="true">
    <match url="^[^/]+/tag/.*?\?.*$" />
    <action type="CustomResponse" statusCode="404" statusReason="The request URL is invalid" 
        statusDescription="The request URL is invalid" />
</rule>

个人感觉这种只是徒有其表,并没有真的解决问题,
还是要详细分析是一下具体是什么问题造成的,
这种情况多半出在IE里面,
大部分就应该是Cookie引起的,就是Cookie的值里面包含的特殊字符或者中文
那我们在写Cookie时只要转一个码就不会有这样的兼容性问题了。
代码如下
[C#] 纯文本查看 复制代码
HttpCookie cookie = new HttpCookie("uname", HttpUtility.UrlEncode(uname));
                    cookie.Expires = DateTime.Now.AddMonths(4);
                    Response.AppendCookie(cookie);



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2016-8-18 10:39:48 | 显示全部楼层
这种情况通常只会在IIS7中出现,IIS6暂时没有发现有过类似情况
发表于 2019-8-28 10:03:25 | 显示全部楼层
站长苏飞 发表于 2016-8-18 10:39
这种情况通常只会在IIS7中出现,IIS6暂时没有发现有过类似情况

怎么转码呢?
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-3-28 21:38

© 2014-2021

快速回复 返回顶部 返回列表