解码问题,简单,在线等

zhiaini 2009-03-12 10:41:40
数据库里存储的值“我爱你.jpg”,对应的表的字段NVARCHAR(100)

我取出来后,成了“%A53%44A...%34.jpg”...我该怎么还原成“我爱你.jpg”..


<asp:Image ID="Image1" runat="server" ImageUrl='<%# @"admin\dbimages\"+Server.UrlDecode(Eval("Img").ToString()) %>' Height="50px" Width="50px" />


我加了Server.UrlDecode()也还是不行..

5555555
...全文
104 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiaini 2009-03-13
  • 打赏
  • 举报
回复
楼上的所有方法试了都不行。
5楼的方法没试。我是要在数据源控件里绑定,所以那3行代码实在不知道怎么在前台用。
  • 打赏
  • 举报
回复
Server.UrlEncode
Server.UrlDecode
是一样的吗???
che2piaopiao 2009-03-13
  • 打赏
  • 举报
回复
用varchar
wb78845838 2009-03-13
  • 打赏
  • 举报
回复
很简单 utf 转gb2312,因为它post过来肯定用的是utf-8编码,所以存到数据库也是utf-8的编码
小猪飞飞 2009-03-13
  • 打赏
  • 举报
回复
这个还要看你的数据库是什么编码格式,看你说的情况,应该是数据库自动转乱了,一般数据库可以设置编码格式的.
datahandler2 2009-03-13
  • 打赏
  • 举报
回复
其实如果你页面制作用的是UTF8格式,在URL中呈现出UTF8的加密编码也是可以呈现出图片来。
数据库那个字段设置成NVARCHAR很好。设置成Varchar就有以后要痛苦的编码问题。
楼主的问题似乎不单单是中文编码问题吧。是不是还有其他问题原因。正常讲Server.UrlDecode应该是可以的。
好好检查检查路径中是否有其他非法字符如?等符号
MAOGE1987 2009-03-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jzywh 的回复:]
统一使用UTF-8编码

或者

byte[] data = Encoding.UTF8.GetBytes(strFromDatabase);
Encoding gb2312 = Encoding.GetEncoding("gb2312");
Response.Write(gb2312.GetString(Encoding.Convert(Encoding.UTF8, gb2312, data)))
[/Quote]
这个行吧
hwg9741 2009-03-13
  • 打赏
  • 举报
回复
utf-8 和GB2312的编码问题 ,UTF-8他还分32位和16位
wode421898419 2009-03-13
  • 打赏
  • 举报
回复
你看你的程序是怎么把它变为“%A53%44A...%34.jpg”的
jzywh 2009-03-13
  • 打赏
  • 举报
回复
in aspx.cs

1. Add a method

using System.Text;

protected string ConvertEncode(string strFromDatabase)
{
byte[] data = Encoding.UTF8.GetBytes(strFromDatabase);
Encoding gb2312 = Encoding.GetEncoding("gb2312");
return gb2312.GetString(Encoding.Convert(Encoding.UTF8, gb2312, data));
}

2. then you can use ConvertEncode in aspx

<asp:Image ID="Image1" runat="server" ImageUrl='<%# @"admin\dbimages\"+ ConvertEncode(Eval("Img").ToString()) %>' Height="50px" Width="50px" />
  • 打赏
  • 举报
回复
敢赌不?
我要是写的可以咋办?
zhiaini 2009-03-13
  • 打赏
  • 举报
回复
来人帮忙解答下啊
我姓区不姓区 2009-03-12
  • 打赏
  • 举报
回复
“我爱你”通过UrlEncode之后也不是得到你这个结果啊,你这些编码是怎么产生的
liuyeede 2009-03-12
  • 打赏
  • 举报
回复
Server.HtmlDecode和HttpServerUtility .HtmlDecode 是一样的,你试一下,关键是你存入数据库时是按明文方式存入的吗?
jzywh 2009-03-12
  • 打赏
  • 举报
回复
统一使用UTF-8编码

或者

byte[] data = Encoding.UTF8.GetBytes(strFromDatabase);
Encoding gb2312 = Encoding.GetEncoding("gb2312");
Response.Write(gb2312.GetString(Encoding.Convert(Encoding.UTF8, gb2312, data)))
zhiaini 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuyeede 的回复:]
HttpServerUtility .HtmlDecode
[/Quote]

前台用还要实例一个HttpServerUtility? ..怎么弄?
zhiaini 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 truelove12 的回复:]
<img src=' <%# string.Format("admin/dbimages/{0}",Server.UrlEncode(Eval("Img"))) %>' runat="server" />
[/Quote]
和我的没区别。。
  • 打赏
  • 举报
回复
<img src='<%# string.Format("admin/dbimages/{0}",Server.UrlEncode(Eval("Img"))) %>' runat="server" />
liuyeede 2009-03-12
  • 打赏
  • 举报
回复
HttpServerUtility .HtmlDecode

62,267

社区成员

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

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

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

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