Session中文乱码

purple_snow 2013-06-03 09:58:37
登录程序后保存当前登录人的信息,其中有姓名是中文的,经常会出现乱码
请问这个如何解决

登录成功后
//session变量
Session["Usercode"] = ds.Tables[0].Rows[0]["UserCode"].ToString();//用户代码
Session["UserName"] = ds.Tables[0].Rows[0]["UserName"].ToString();//用户姓名

主页面
-.- 姓名乱码
...全文
785 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_22754699 2015-09-20
  • 打赏
  • 举报
回复
gz19930611 2015-05-01
  • 打赏
  • 举报
回复
可以试着再tomcat里的server.xml文件中找到<Connector>中加上URIEncoding="utf-8" 就像 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/> 最好在此基础上再加上 useBodyEncodingForURI="true"
FYTxiaofeng 2014-08-25
  • 打赏
  • 举报
回复
页面加<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>就OK了
purple_snow 2013-06-03
  • 打赏
  • 举报
回复
是GB2312的编码
md5e 2013-06-03
  • 打赏
  • 举报
回复
只能说页面编码不统一 记事本->另存为->编码是否为utf-8, aspx头部是否定义utf-8的编码
purple_snow 2013-06-03
  • 打赏
  • 举报
回复
我只是举个例子,用户名密码录入后我要通过数据库查询出相关的公司/部门/职称 等重要信息的,后面都要逐一用到, ds.Tables[0].Rows[0]["UserCode"].ToString();这样是取读出来的内容 然后把它逐个存到Session里面,我这样说可以理解么?
-烟花雨季 2013-06-03
  • 打赏
  • 举报
回复
引用 楼主 purple_snow 的回复:
登录程序后保存当前登录人的信息,其中有姓名是中文的,经常会出现乱码 请问这个如何解决 登录成功后 //session变量 Session["Usercode"] = ds.Tables[0].Rows[0]["UserCode"].ToString();//用户代码 Session["UserName"] = ds.Tables[0].Rows[0]["UserName"].ToString();//用户姓名 主页面 -.- 姓名乱码
为什么要这样设置,直接Session["User"] = User;不行吗 取的时候:string userCode = (Session["User"] as User).UserCode;
purple_snow 2013-06-03
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
调试一下,应该是你在存储之前就已经是乱码了: ds.Tables[0].Rows[0]["UserCode"].ToString();
调试过了 读出来的是正确的,但是存到session后就乱码了 是不是可以换一下存的方法?
q107770540 2013-06-03
  • 打赏
  • 举报
回复
调试一下,应该是你在存储之前就已经是乱码了: ds.Tables[0].Rows[0]["UserCode"].ToString();
purple_snow 2013-06-03
  • 打赏
  • 举报
回复
引用 9 楼 liuchaolin 的回复:
.net和GB2312有冲突的,因为本身.cs文件是属于utf-8的,配置文件默认也是utf-8的,所以难免有冲突 最好的方案是统一成utf-8的编码 不统一也行,可以这样试试,配置文件全改成gb2312 <system.web> <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
那是不是说我程序中所有的页面都要一一改成GB2312的。好像太多了'.' 我的配置文件里是有这句转成gb2312的,但当时不知什么原因注释掉了 这个乱码问题不是每次登录都会出现的,我先把它解释掉,也不知道测到什么程度才能保证它不会再乱码 非常谢谢你!不管怎么样,以后再用到这块儿肯定是会注意一下的了,受益匪浅呀这次!
by_封爱 2013-06-03
  • 打赏
  • 举报
回复
玩了3年的asp.net 从来没遇到过乱码..真惭愧啊 从来没设置过配置文件 也从来没在网页里写什么gb2312的 session也一直用..
md5e 2013-06-03
  • 打赏
  • 举报
回复
.net和GB2312有冲突的,因为本身.cs文件是属于utf-8的,配置文件默认也是utf-8的,所以难免有冲突 最好的方案是统一成utf-8的编码 不统一也行,可以这样试试,配置文件全改成gb2312 <system.web> <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>
跳动de指尖 2013-06-03
  • 打赏
  • 举报
回复
引用 6 楼 purple_snow 的回复:
是GB2312的编码
GB2312和UTF-8还是有区别的,并且asp.net默认就是UTF-8
purple_snow 2013-06-03
  • 打赏
  • 举报
回复
自己顶

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧