当前位置:编程学习 > C#/ASP.NET >>

为什么页在异常报出来的是乱码?

环境:Windows Server 2008 R2繁体中文版。
网站是英文+繁体版,在别的地方运行一切正常。

现在配好之后,网站可以正常运行,但是如果有异常,或者页面找不到等问题,在chrome显示是乱码,在IE上会了现下载文件。



因为网站在别的服务器(简体版和英文版的操作系统)都没这个情况,所以排除网站问题。
浏览器编码设置过没有效,换浏览器也一样。
IIS错误页替换成英文版、或修改错误页编码也无效。
IIS全球化也设置过,一样无效。 --------------------编程问答-------------------- 设置一下web.config 只要有错误跳入错误页面(erro.html),处理 --------------------编程问答--------------------
引用 1 楼 xiaolongit 的回复:
设置一下web.config 只要有错误跳入错误页面(erro.html),处理



我要的是看错误 --------------------编程问答-------------------- 编码!编码格式改下! --------------------编程问答-------------------- --------------------编程问答-------------------- try catch 捕捉一下 --------------------编程问答-------------------- .net framework 版本重装一下 --------------------编程问答-------------------- 编码格式不对吧~! --------------------编程问答-------------------- 一般都为utf-8格式! --------------------编程问答--------------------
引用 3 楼 yumen3501 的回复:
编码!编码格式改下!


跟编码无关,页面无异常的话,一切正常的。
我是说异常页面显示不是错误消息,而是乱码。 --------------------编程问答--------------------
引用 5 楼 yezhenhua101 的回复:
try catch 捕捉一下


我就是想看错误,关键是它不给我显示黄色的报错页面,而是乱码。 --------------------编程问答--------------------
引用 6 楼 yezhenhua101 的回复:
.net framework 版本重装一下


你的回答比较接近我的想法,.net framework重装过了,也装了繁体中文语言包,但是一样还是乱码。 --------------------编程问答-------------------- 改一下chrome的编码试试呢? --------------------编程问答-------------------- gb2312 --------------------编程问答-------------------- 一个乱码 就重装.net framework。这浪费了多少时间  --------------------编程问答-------------------- 把数据先编码一下然后在解码 --------------------编程问答-------------------- 在web.config里的 system.web加编码格式就OK了。 --------------------编程问答--------------------
引用 楼主 suenping 的回复:
环境:Windows Server 2008 R2繁体中文版。
网站是英文+繁体版,在别的地方运行一切正常。

现在配好之后,网站可以正常运行,但是如果有异常,或者页面找不到等问题,在chrome显示是乱码,在IE上会了现下载文件。

给出的信息太通用,没法精确判定,不好猜测。
建议:
1、用 Chrome f12->network 看看response header 里面的编码是什么?(是不是Content-Type:text/javascript; charset=UTF-8)
2、最终用户是不要看到任何原始错误,应该到customerrors 里面把500 转向设置了
3、到global.asax 里面用代码把错误写日志里面
        void Application_Error(object sender, EventArgs e)
        {
            try
            {
                Exception ex = Server.GetLastError();
                StringBuilder theBody = new StringBuilder();
                theBody.Append("URL: " + Request.Url + "\n");
                theBody.Append("Referer: " + Request.ServerVariables["HTTP_REFERER"] + "\n");
                theBody.Append("IP: " + Request.ServerVariables["REMOTE_HOST"] + "\n");
                theBody.Append("Error Message: " + ex.ToString() + "\n");
               Response.Redirect("/oops.aspx");
            }
            catch
            {
                //Response.Redirect("/oops.aspx");
            }
        }
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,