前两天通过我们的游戏中心无法下载某款游戏,把下载地址直接扔到浏览器下载时OK的,

而且同样在应用商店也无法下载,但是可以下载其他的游戏,

那出问题的应该是系统的下载管理器模块了,因为游戏中心与应用商店都是通过下载管理器下载的。

我想是不是这款游戏有什么特殊导致无法下载呢?

后来系统管理器的同事定位是因为我们传的路径里面含有特殊的字符%,

这个%来自游戏的名字,这个游戏的名字运营是可编辑的,马上让运营人员修改这个%,要么去掉,要么换成全角。

这样,解决了。

但是,定位问题的时候,发现低版本的下载管理器是没有问题的,

是因为某个版本开始,下载管理器的在将应用提交的下载信息里的路径存放地址,放入数据库时,使用了

Uri.decode,导致插入数据库失败:

String displayName = "游戏返60%"
String path = Uri.decode(displayName)

大家可以试下,这时path里面含有乱码。

所以,为了避免下次再出错,游戏中心中的代码,需要将这个path传给下载管理器前,先Uri.encode下:

String displayName = "游戏返60%"
String path = Uri.decode(Uri.encode(displayName))

我就再想是不是所有特殊的字符(通过Uri.encode转变的字符,如:@#=+*&<>等)都会引发这样的问题呢?

String displayName = "游戏+"
String path = Uri.decode(displayName)

但是,经过测试发现上面的path是正常的,没有乱码。

经过Uri.encode的字符,如果有特殊的字符,特殊的字符都是以%开始的,所以Uri.decode的时候,遇到%,%后面的字符

就会按照特殊字符来解析。

一个百分号%引起的事故相关推荐

  1. 曹大带我学 Go(8)—— 一个打点引发的事故

    你好,我是小X. 曹大最近开 Go 课程了,小X 正在和曹大学 Go. 这个系列会讲一些从课程中学到的让人醍醐灌顶的东西,拨云见日,带你重新认识 Go. 最近线上事故频发,搞得焦头烂额,但是能用上跟曹 ...

  2. mysql数据加百分号_使用MySQL SELECT语句时,在每个值的末尾添加一个百分号(%)...

    要在末尾添加百分号,请使用CONCAT()函数.让我们首先创建一个表-mysql> create table DemoTable ( StudentId int NOT NULL AUTO_IN ...

  3. Revit软件 | 愁死人,一个误删引发的事故

    有一说一,有什么比做好的模型/文件,因为一个手误被删,更让生气的? 但是幸好,只要知道方法,有些损失还是可以挽回的. 今天就来看看Revit中图元/文件被误删,要怎么办. 这时候分以下两种情况: 01 ...

  4. android 百分号,关于Android资源文件中出现百分号的问题

    问题编辑strings.xml的时候 在行 http://code.dd.com/rr?q=%rr.55 或者 - error: Unexpected end tag string 出现这个错误的原因 ...

  5. Python字符串的两种方式——百分号方式,format的方式

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  6. 高效运维最佳实践:如何做好On-call和事故响应?

    太多的公司所用的on-call轮转和事故响应流程让团队成员感到紧张.焦虑.痛苦.特别是,许多优秀的工程师只是由于这个原因而拒掉工作. 并非一定要这样.在New Relic,我们的开发运维实践让我们得以 ...

  7. Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程

    为什么80%的码农都做不了架构师?>>>    日期:2012-8-8  来源:GBin1.com Google的自动驾驶汽车可能是这家公司最具有创新精神的项目之一.今天 Googl ...

  8. c语言双精度百分号,C语言输出百分号%的方法和示例

    在C语言中的printf函数族中,百分号%有特别的用途(占位符),不能直接输出. 1.输出百分号%号的方法 如何输出百分号?很简单,用两个%表示输出一个百分号. 示例: /* * 程序名:book.c ...

  9. C语言输出百分号%的方法和示例

    文章目录 1.输出百分号%号的方法 2.获取视频教程 3.版权声明 在C语言中的printf函数族中,百分号%有特别的用途(占位符),不能直接输出. 1.输出百分号%号的方法 如何输出百分号?很简单, ...

  10. 线上Mysql重大事故快速应急解决办法

    由于好多公司节约成本都没有自己的DBA人员,大部分都是开发或者运维人员操作数据库,但数据库是重中之重,等公司达到一定规模之后,数据库一个不小心的事故,很有可能会让公司回到解放前.所以在公司小规模的时候 ...

最新文章

  1. Ubuntu 14.04 64bit上curl-7.37源码包中的sample 源码示例研究
  2. 优质手机APP开发公司的特点
  3. mysql中间件研究(Atlas,cobar,TDDL)
  4. java日志——修改日志管理器配置+日志本地化
  5. “哪吒”出世!华为开源中文版BERT模型
  6. 分布式应用中的一致性协议
  7. iPhone 12延期恐实锤:台积电5nm A14芯片将延期3个月
  8. linux ubuntu内核安装位置,在Ubuntu中安装或升级内核 linux kernel
  9. Flex4.0判断摄像头是否被占用
  10. CENTOS上编译FreeSwitch
  11. 找不到/boot目录grub命令行启动以及/boot分区移动
  12. win10更新后没有计算机了,win10更新后 ,没有处理器电源管理怎么办?
  13. Stealing Machine Learning Models via Prediction APIs研读报告
  14. V 社秘密开发 Steam 跨系统兼容工具;甲骨文开源 GraphPipe,机器学习模型标准
  15. 一文搞懂蓝绿部署和金丝雀发布
  16. 华为LACP链路聚合配置
  17. 最新全国机场名(持续更新2017-12-27)
  18. 高中数学知识点:集合知识讲解
  19. HarmonyOS内存占用,华为HarmonyOS对比EMUI11:内存占用更少 系统更流畅
  20. npm和package是什么

热门文章

  1. [bzoj2594][Wc2006]水管局长数据加强版
  2. 实验七——Web应用测试(bookstore项目上完成)
  3. MSDN MTBETA
  4. vue-router传递参数的两种方式
  5. vue中使用echarts
  6. kudu导入文件(基于impala)
  7. elasticsearch中head插件中的定制增加用户名密码范例
  8. SRS之SrsRtmpConn::publishing详解
  9. HAProxy从零开始到掌握
  10. 【转】Python中操作mysql的pymysql模块详解