首页 新闻 赞助 找找看

网页用<%=变量%>绑定后是乱码?请问是怎么回事

0
悬赏园豆:10 [已解决问题] 解决于 2012-08-20 09:29

网页用vs2008调试的时候能正常显示,发布到服务器上用IP地址访问就不行了

网页用<%=变量%>绑定后是乱码?请问是怎么回事,各种方法都用了就是解决不了。

<meta http-equiv="content-type" content="text/html;charset=utf-8">或者

<meta http-equiv="content-type" content="text/html;charset=GB2312">都用了都不行

还有<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312" culture="zh-CN" uiCulture="zh-CN"/>也添加了还是不行,

当我用GB2312编码时右键选择utf-8编码绑定的变量能正常显示,其他显示乱码,

当我用UTF-8编码时绑定的变量依然是乱码

HTML代码如下:

用户名</span><div  style="display:inline"><%=UserName %>---用户类型:<div style="display:inline" id="usertype"> <%=UserType%>

yxf2011的主页 yxf2011 | 初学一级 | 园豆:6
提问于:2012-06-06 11:46
< >
分享
最佳答案
1

你这个问题。。。都问N次了哦!

 

你在你的代码里另外定义一个UserName,直接让UserName返回一个带中文的字符串(最好用英文前后标记,并不间断的穿插),而不是从数据库里读取。

这样,可以判断是ASPX的RENDER问题,还是数据库数据的问题。

收获园豆:10
无之无 | 大侠五级 |园豆:5095 | 2012-06-06 11:48

没办法啊,急着解决只能这样了

用VS2008调试是正常的,发布后就不行了

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 12:23

没办法啊,急着解决只能这样了

用VS2008调试是正常的,发布后就不行了

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 12:27

没办法啊,急着解决只能这样了

用字符串代替现实正常

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 12:27

是数据库的问题,但是怎么解决啊??

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 12:35

@yxf2011: 如果用普通字符串是正常的,那问题就可能出现在你数据库提供的数据内容上了。

你可以把检索后的数据库内容进行编码后输出,看下输出的结果是什么:Server.HtmlEncode

无之无 | 园豆:5095 (大侠五级) | 2012-06-06 12:36

@笨笨蜗牛: 编码后输出依然是乱码

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 13:06

@yxf2011: 编码后的结果呢?

无之无 | 园豆:5095 (大侠五级) | 2012-06-06 13:32

@笨笨蜗牛: 编码后输出的是乱码,没什么变化

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 13:36

@yxf2011: 那用URLENCODE输出看。

无之无 | 园豆:5095 (大侠五级) | 2012-06-06 13:40

@笨笨蜗牛: 

%e6%b5%bc%e4%bd%b7%e7%ac%9f%e9%90%a2%e3%84%a6%e5%9f%9b
yxf2011 | 园豆:6 (初学一级) | 2012-06-06 13:47

@笨笨蜗牛: 输出的是如上

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 13:51

@yxf2011: 这个编码是UTF-8的,6个汉字。

汉字UTF-8编码的特征:每个汉字3字节,高字节都是e开头的16进制。

 

你或者这样:

Encoding.UTF8.GetString(Encoding.Default.GetBytes("数据库字段内容"))

我还真的没遇到过你这样的问题。

无之无 | 园豆:5095 (大侠五级) | 2012-06-06 13:53

@笨笨蜗牛: 十分感谢,这种方法可以,但是有一个问题就是,当只有一个汉字的时候是乱码。不过这样也能走路

yxf2011 | 园豆:6 (初学一级) | 2012-06-06 15:08

@yxf2011: 这个问题是有点费解的。数据库里存储的文本信息,在获取到.NET的系统后,应该有统一的内存编码(UNICODE)才对。在输出不应该出现这样的问题。我也从来没遇到过。

不过,现在问题解决了就好,虽然解决方案有点迂回。

无之无 | 园豆:5095 (大侠五级) | 2012-06-06 15:39
其他回答(2)
0

数据库字段是什么类型?

dudu | 园豆:31075 (高人七级) | 2012-06-07 08:12

nvarchar

支持(0) 反对(0) yxf2011 | 园豆:6 (初学一级) | 2012-06-07 09:13

@yxf2011: 看一下数据库的Collation设置是不是Chinese_PRC_CI_AS,如果不是,改为这个。

支持(0) 反对(0) dudu | 园豆:31075 (高人七级) | 2012-06-07 10:14
0

或者...

dotNetDR_ | 园豆:2078 (老鸟四级) | 2012-06-07 09:49

这个方法用了,不行

支持(0) 反对(0) yxf2011 | 园豆:6 (初学一级) | 2012-06-07 09:57

@yxf2011: 亲...重新建个空白的项目试一试为好噢~~

支持(0) 反对(0) dotNetDR_ | 园豆:2078 (老鸟四级) | 2012-06-07 09:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册