首页新闻找找看学习计划

vs 2013+iisexpress 出错时,有时是显示乱码,这个有解吗?有时是正常的。

0
悬赏园豆:20 [已解决问题] 解决于 2014-05-09 19:56

像下面的写法中,如果 xxxx 是不存的属性报错就是乱码,还有其他一些情况也是乱码,有时又是正常的显示错误信息。

2J的主页 2J | 初学一级 | 园豆:129
提问于:2014-05-07 16:29
< >
分享
最佳答案
0

html的开头指定编码格式

收获园豆:7
吴瑞祥 | 高人七级 |园豆:28729 | 2014-05-07 16:33

<meta charset="utf-8"/>

吴瑞祥 | 园豆:28729 (高人七级) | 2014-05-07 16:33

@吴瑞祥: 界面本来就有这个设置的,冇用。

2J | 园豆:129 (初学一级) | 2014-05-07 16:47

@戢俊建: 那说明原来的设置是错的,你看下输出的编码方式是什么样的,

在浏览器上可以修改编码方式,

吴瑞祥 | 园豆:28729 (高人七级) | 2014-05-07 16:59

@吴瑞祥: 浏览器里是utf-8,问题是有时是正常的,有时乱码。如果aspx里有错误,大部分是乱码,aspx.cs文件有错,是正常的。其他层有错误也是乱码。这个是重点哈。

2J | 园豆:129 (初学一级) | 2014-05-07 17:11

@戢俊建: 异常的时候出乱码?不异常的时候就没问题?

吴瑞祥 | 园豆:28729 (高人七级) | 2014-05-07 17:14

@吴瑞祥: 是的,就是异常也有时是正常的,另外,我记录的错误日志中显示也是正常的。

2J | 园豆:129 (初学一级) | 2014-05-07 17:23

@戢俊建: 那就是异常页面的编码有问题.

你检查下异常页面的编码情况吧

吴瑞祥 | 园豆:28729 (高人七级) | 2014-05-07 17:33

@吴瑞祥: iis express异常页面是在哪里,能详细说说下么?

2J | 园豆:129 (初学一级) | 2014-05-07 17:41

@吴瑞祥: 是否异常来源不同,异常界面也不同哦。

2J | 园豆:129 (初学一级) | 2014-05-07 17:43

@戢俊建: 那就统一下异常页面,可以修改配置,自定义异常页面

吴瑞祥 | 园豆:28729 (高人七级) | 2014-05-07 17:54

@吴瑞祥: iis express异常页面是在哪里,能详细说说下么

2J | 园豆:129 (初学一级) | 2014-05-07 17:56

@戢俊建: iis express异常页面你完全无视就行了.因为不会上线的.

自定义异常页面看看会不会还有这种情况吧,

吴瑞祥 | 园豆:28729 (高人七级) | 2014-05-07 18:12
其他回答(4)
0

设置一下编码方式

收获园豆:7
sunlary | 园豆:934 (小虾三级) | 2014-05-07 16:56

目前整个站都是设置的uft8,冇用哦。

支持(0) 反对(0) 2J | 园豆:129 (初学一级) | 2014-05-07 16:59

@戢俊建: 文件-》高级保存选项中设置了吗?

支持(0) 反对(0) sunlary | 园豆:934 (小虾三级) | 2014-05-07 17:18
0

那就Config里面的设置 global 设置

收获园豆:6
Devin Mao | 园豆:596 (小虾三级) | 2014-05-07 16:59

问题是有时是正常的,有时乱码。如果aspx里有错误,大部分是乱码,aspx.cs文件有错,是正常的。其他层有错误也是乱码。这个是重点哈。

另外,您说的Config是指哪里?

支持(0) 反对(0) 2J | 园豆:129 (初学一级) | 2014-05-07 17:12

@戢俊建: 决定乱不乱码有在web上面有几个隐私:

1.文件本身的编码格式;aspx本身文件的编码格式,可以用notepad++等软件看,转换

2.客户端浏览器的发送的请求格式,一般不是这个问题

3.IIS内部设置的格式(web.config有一个global配置节,如果没有,可以自己搜索添加)

4.客户端浏览器格式解析

支持(0) 反对(0) Devin Mao | 园豆:596 (小虾三级) | 2014-05-07 17:17
0

虽然解决方案不是几位朋友说的,还是谢谢各位。我后来发现是 Application_PreRequestHandlerExecute中关于压缩的有问题,也没有找到好的方案,就是注释就正常了。要是各位知道如果处理,还请指点下。下面是代码。

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        HttpApplication app = sender as HttpApplication;

        string acceptEncoding = app.Request.Headers["Accept-Encoding"];
        System.IO.Stream prevUncompressedStream = app.Response.Filter;

        if (!(app.Context.CurrentHandler is Page ||
            app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
            app.Request["HTTP_X_MICROSOFTAJAX"] != null)
            return;

        if (acceptEncoding == null || acceptEncoding.Length == 0)
            return;

        acceptEncoding = acceptEncoding.ToLower();

        if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
        {
            // defalte
            //app.Response.Filter = new System.IO.Compression.DeflateStream(prevUncompressedStream,System.IO.Compression.CompressionMode.Compress);
            app.Response.AppendHeader("Content-Encoding", "deflate");
        }
        else if (acceptEncoding.Contains("gzip"))
        {
            // gzip
            app.Response.Filter = new System.IO.Compression.GZipStream(prevUncompressedStream,System.IO.Compression.CompressionMode.Compress);
            app.Response.AppendHeader("Accept-Encoding", "gzip");
        }
    }
View Code
2J | 园豆:129 (初学一级) | 2014-05-09 19:56
0

现在有好的解决方法

我的是到 ActionFilter 后异常,然后就直接报错,也不懂哪边出错;。

Weiseditor | 园豆:74 (初学一级) | 2016-01-17 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册