HttpUtility.UrlEncode 在 Encode 的时候, 将空转换成加号(''), 在 Decode 的时候将加号转为空, 但是浏览器是不能理解加号为空的, 所以如果文件名包含了空, 在浏览器下载得到的文件, 空就变成了加号。 在用 ASP.Net 开发页面的时候, 我们常常通过 System.Web

HttpUtility.UrlEncode 在 Encode 的时候, 将空格转换成加号('+'), 在 Decode 的时候将加号转为空格, 但是浏览器是不能理解加号为空格的, 所以如果文件名包含了空格, 在浏览器下载得到的文件, 空格就变成了加号。

在用 ASP.Net 开发页面的时候, 我们常常通过 System.Web.HttpUtility.UrlEncode 和 UrlDecode 在页面间通过 URL 传递参数. 成对的使用 Encode 和Decode 是没有问题的.但是, 我们在编写文件下载的页面的时候, 常常用如下方法来指定下载的文件的名称:

Response.AddHeader("Content-Disposition","attachment;filename="+ HttpUtility.UrlEncode(fileName, Encoding.UTF8));

之所以转换成 UTF8 是为了支持中文文件名.

这时候问题就来了, 因为HttpUtility.UrlEncode 在 Encode 的时候, 将空格转换成加号('+'), 在Decode 的时候将加号转为空格, 但是浏览器是不能理解加号为空格的, 所以如果文件名包含了空格, 在浏览器下载得到的文件, 空格就变成了加号.

一个解决办法是, 在HttpUtility 的 UrlEncode 之后, 将 "+" 替换成 "%20"( 如果原来是 "+" 则被转换成 "%2b" ) , 如:

fileName = HttpUtility.UrlEncode(fileName,Encoding.UTF8);

fileName = fileName.Replace("+","%20");

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql 加号_从数据库中读取字符串时其中的空格变成加号相关推荐

  1. 用jsp_servlet实现在mysql中存储图片_从数据库中读取并生成图片的Servlet

    从数据库中读取并生成图片的Servlet 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 作者:邵望 日期:2000-12-24 21:44:55 大体思路 ...

  2. html读mysql数据_html从数据库中读取数据

    展开全部 html只能通过ajax接口跟后台数据库接口通信,然后取出来的数据在页面上显636f70793231313335323631343130323136353331333337626135示. ...

  3. python按行读取文件取消空白行_在Python中读取文件时忽略空行的最简单方法

    我将堆栈生成器表达式:with open(filename) as f_in: lines = (line.rstrip() for line in f_in) # All lines includi ...

  4. js获取mysql数据库数据类型_怎么利用JS将从数据库中读取出来的日期型格式化为想要的类型...

    在页面初始化时,用JavaScript将从数据库中读取出来的日期型格式化为想要的类型.格式化为yyyy年MM月dd日 HH时mm分ss秒,大家可以参考下代码,自由发挥下. 代码如下://传入从数据库中 ...

  5. mysql 字符串转long_把数据库中的字符串格式转为long类型

    背景: 在做接口时,需要把数据库中所有ID取出来,用jmter做一些数据关联,问题来了,数据库中的ID转换出来为字符型,而接口是需要使用LONG型,所以在导出来后,数据一直报类型不为long,那如何把 ...

  6. dw读取access中的图片_怎样从Access数据库中读取图片?解决办法

    当前位置:我的异常网» C# » 怎样从Access数据库中读取图片?解决办法 怎样从Access数据库中读取图片?解决办法 www.myexceptions.net  网友分享于:2013-03-0 ...

  7. mysql 数据缓冲区,MySQL写入缓冲区在数据库中的作用( Change Buffer )

    原标题:MySQL写入缓冲区在数据库中的作用( Change Buffer ) 介绍另外一种重要的数据变更日志,也就是InnoDB change buffer.Change buffer的主要目的是将 ...

  8. 基于JDBC从数据库中读取数据,在百度地图批量标注地点

    基于JDBC从数据库中读取数据,在百度地图批量标注地点 一.相关技术 JSP,JDBC,JSON,JS,百度地图API 二.基于JDBC从数据库读取数据 见"JSP基于JDBC操作MSSQL ...

  9. 从数据库中读取经纬度,在google map 上进行标注(一)

    这个文章写给像我一样刚刚接触google maps api 的同志们,希望他们看到我的文章后能有点启发,也希望我的文章能让更多人看见. 有很多人在自己的网页上嵌入google 地图时需要标注自己想要的 ...

  10. java中mysql中标点符号_java – 如何在使用JDBC从MySQL数据库中提取数据时避免丢失标点符号?...

    首先,我正在使用: Java 1.7.0_02 MySQL 5.1.50 ZendServer CE (if that matters) 我用来从Java连接到MySQL的JDBC驱动程序是com.m ...

最新文章

  1. HTML实现折现图完整源码及效果图
  2. Day12 Java异常处理与程序调试
  3. Android Studio导入 jar包的方法
  4. P7518-[省选联考2021A/B卷]宝石【主席树,二分】
  5. 发送请求_发送soap请求调用WSDL
  6. apns java 证书_APNS推送服务证书制作 图文详解教程(新)
  7. C语言,利用循环语句找出1000以内的水仙花数
  8. 如果用float实现居中
  9. ubuntu 无法启动mysql_解决ubuntu下安装mysql使用service 无法启动问题
  10. 实现一个闹钟_米系或许真的比米家更值,闹钟温度湿度,一个设备就搞定
  11. Oracle 写存储过程的一个模板还有一些基本的知识点
  12. java qq发送邮件
  13. django中间件修改,以及TypeError: object() takes no parameters的异常处理
  14. C++--第11课 - 类的静态成员
  15. 反编译与计算机软件的知识产权保护
  16. 关于android中的armeabi、armeabi-v7a、arm64-v8a及x86等用splits用指定打包
  17. PHP7函数大全(4553个函数)
  18. 呼吸运动减肥法-可以加快新陈代谢
  19. matplotlib画柱状图
  20. C. Not Adjacent Matrix

热门文章

  1. 无人机油动发动机调试
  2. 网关 网关路由器 网关交换机 路由器 交换机
  3. cs架构(cs架构和bs架构的区别)
  4. 排列和组合问题完全解析
  5. 攻防世界backup
  6. 公式图片转换成Word格式
  7. mysql结构化数据通过D2RQ导入Neo4j
  8. 文件夹的菜单栏和地址栏不见了
  9. 图片秒加水印制作生成微信小程序源码下载免服务器域名
  10. css3动画 --- transform属性值:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix