.net 乱码,亟待解决,谢了先
先说下基本情况:这套.net系统大概是2005年开发的,当时所有功能应该都是调试通过的,不过是软件公司做的,所以没有留下源代码,只有编译好的dll
目前情况是页面上方有一个显示状态的<asp:Label ID="lbl_cname" Runat="server" ForeColor="white">,此处应该是从数据库取出"cname"中文名放到了一个cookie里,然后传给label,就是这里出现乱码。
不过此前的系统为win2003 server sp1,显示都没问题。近期服务器中了病毒,所以重装系统,win2k3基本都是sp2的,换了好几套系统都有此类现象。requestEncoding方法已经在N个文档中试过,没有效果。
从代码方面解决应该是不可能了吧,目前只能从环境上解决,我这实在是没有招了,请大家帮帮忙吧。明天上班就要用了,谢谢了 --------------------编程问答-------------------- 查查数据库里面的数据是不是已经乱码了? --------------------编程问答-------------------- 不是啊,以前一直都正常的,是一个用了7年的系统了 --------------------编程问答-------------------- 存入COOKIE后 看cookie 的编码方式。复制出来 贴个位置看乱码不 --------------------编程问答-------------------- 这么说:1.DB没问题,2.web.config的requestEncoding,responseEncoding都是正确的,3.其他字段的显示都正常。那神奇了。。。
有的时候问题不知道从何入手的时候,需要把所有关联的地方都查一遍。
1) DB的Charset
2) asp.net应用的配置
3) 出问题页面的header的charset
4) 数据
上面的几个charset要保持一致。另外,没有源码不能debug你可以用fiddler拦截一下你的request和response检查下乱码是服务端产生的还是客户端产生的。 --------------------编程问答-------------------- cookie的编码问题是不是要在源码中解决啊?源码现在已经没有了,只有一个dll,这是我反编译看到的部分源码,
此处应该是取出
private void SetCookies(ArrayList useritems)
{
ArrayList list = new ArrayList();
list.Add("uid");
list.Add("cname");
list.Add("ename");
list.Add("bumen");
list.Add("pwd");
list.Add("power");
for (int i = 0; i < list.Count; i++)
{
this.Page.Response.Cookies.Add(new HttpCookie((string) list[i], useritems[i].ToString()));
}
new myoffice.upfile.upfile().Del_TempViewFile(int.Parse(useritems[0].ToString()));
this.Page.Response.Cookies.Add(new HttpCookie("UsersName", useritems[1].ToString()));
this.Page.Response.Cookies.Add(new HttpCookie("UsersPwd", useritems[4].ToString()));
this.Page.Response.Cookies.Add(new HttpCookie("UsersClass", "1"));
}
这里应该是显示用的
private void Page_Load(object sender, EventArgs e)
{
this.lbl_cname.Text = base.Request.Cookies["cname"].Value.ToString();
}
不过修改源码已经没有意义了。各位能不能从配置环境的角度上给想想折?
我用reflector看到的一些信息:
// Assembly yejin, Version 1.0.1447.22846
Location: E:\Work space\Web Site\yjnw\yejin\bin\yejin.dll
Name: yejin, Version=1.0.1447.22846, Culture=neutral, PublicKeyToken=null
Type: Library
--------------------编程问答--------------------
1.DB的Charset我正在看,因为又重装了一边系统
2.asp.net的配置我实在是不知道看哪里
3.出问题的页面的charset我也改过了没效果
4.数据应该没问题
补充一下,此类现象以前在客户端出过,原因是安装了IE8,IE8以下版本正常,卸载后恢复。如果能找出环境哪里不一样估计就能解决了。 --------------------编程问答-------------------- 应该是服务器端的问题吧,取出来就是“cname=����Ȫ”这是cookie里的值,用fiddler看的 --------------------编程问答--------------------
补充:.NET技术 , ASP.NET