技术标签: android,编码问题
转载声明:原文来自:http://blog.csdn.net/zml_2015/article/details/51007932#comments
通过调用第三方APi数据,需要发送请求,之前URl请求中都是数字和字母,所以不会遇到返回的数据为空的问题,但是今天在发送的URL请求中含有中文了,就有问题了,在Java中,不会出现访问中文URL有问题的现象,因为我一开始用的是MyEclipse写的测试,可以通过中文URL地址拿到数据,但是我把同样的代码copy到Android中就有问题了
同一个方法,在MyEclipse中写测试的时候,可以拿到第三方的json数据,但是把同样的方法放在android中就拿到的值却为空(网络通信封装的是HttpURLConnection)
获得到的数据:
在Android中,粘贴过来的代码:
却拿不到数据
解决方案:
这个是因为编码的问题,当URL中有中文的时候,浏览器是会自动编码解析的,但是在客户端开发会遇到中文编码问题,所以必须做中文编码
先说下我今天跳的坑
但要注意不要写成下面的样子,在不能直接对我们拼接的URL全部进行编码,如果进行URL全部编码的话,把进行编码的URL粘贴到浏览器中,如http://apis.baidu.com/bbtapi/constellation/constellation_query?consName%3D%E5%8F%8C%E5%AD%90%E5%BA%A7%26type%3Dtoday,会发现多了点东西
String jsonString2;try {jsonString2 = HttpUtils.request(UrlUtils.XINGZUO_URL,URLEncoder.encode(sb.toString(),"utf-8").toString());System.out.println(jsonString2);XingZuoDay jsonday = GsonTools.getObjectData(jsonString2, XingZuoDay.class);System.out.println(jsonday.toString());} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}
应该写成下面的样子,只对中文进行编码,不对整个URL进行编码
文章浏览阅读2.1k次。在本地电脑写好了一个springboot + mybatis + pg的项目,在本地调试运行正常,将项目打成jar包在服务器上运行,当与pg交互时出现上述报错信息。上述表示允许IP地址为10.10.56.17的所有用户可以通过MD5的密码验证方式连接主机上所有的数据库。1)找到pg的安装路径,该路径下有个data文件夹,在data文件夹找到pg_hba.conf配置文件。2)打开pg_hba.conf配置文件,在ipv4下添加服务器ip,例如。3)修改后保存,打开pg终端,执行。_org.postgresql.util.psqlexception: 尝试连线已失败。
文章浏览阅读2.2w次,点赞49次,收藏130次。Windows 下安装和卸载 Go 及 vscode 环境配置【2023最新】_vscode go
文章浏览阅读207次。插画投稿网站是提供给插画师们展示和分享自己作品的平台。这些网站通常允许插画师上传自己的作品,并与其他用户进行交流和互动。插画师可以在这些网站上展示自己的作品集,参与各种比赛和活动,与其他插画师进行合作,甚至有机会与潜在客户建立联系。是一个面向设计师和创意人才的社区平台,也是插画师展示作品的理想场所。在Dribbble上,插画师可以上传自己的作品,参与各种设计挑战和竞赛,与全球设计师社区互动,展示自己的创意和技能。_vue 插画
文章浏览阅读8k次,点赞8次,收藏57次。0 前言电商平台所有模块中,订单系统作为比较核心的模块,它决定了整个流程能不能顺畅的执行,起着承上启下的作用(下单、支付、履约、售后、清结算、营销活动)。订单系统的设计主要需要考虑订单字段、业务流程、状态机三大个方面,这些内容决定了订单系统稳定性与扩展性。2 订单流程订单流程指整个订单从产生到完成的整个流转过程,它包括正向流程和逆向的流程。3 订单状态机状态机表示了一笔订单的生命周期,按照一定的方向通过触发不同的事件产生数据流转的过程。状态机v2.0随着业务快速._订单状态机
文章浏览阅读491次,点赞5次,收藏11次。工欲善其事,必先利其器”,为了方便Linux驱动设备的开发和调试,建立舒适的开发环境、使用必要的软件工具,以及掌握常用的调试技巧是比较重要的。本篇介绍GDB调试器的主要功能和常见用法,同时在第三部分中,命令顺序按照使用频率由高到低编写,方便阅读和使用。
文章浏览阅读53次。nyoj-0613-免费馅饼 G. 免费馅饼都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameb...
文章浏览阅读1.3k次,点赞21次,收藏22次。Lucky-Richardson(L-R)算法是非线性方法中一种典型的算法,在噪声信息未知时仍可得到较好的复原结果。维纳滤波又称为最小均方误差滤波,综合考虑了退化函数和噪声,找出一个原始图像f(x)的估值,使两者的均方误差较小。psf表示退化过程的点扩散函数,用于恢复psf和可能的加性噪声引起的退化;P(u,v)是函数p(x,y)的傅里叶变换,p(x,y)为拉普拉斯算子。Weight表示每个像素的加权值,记录了每个像素反应相机记录的质量。Dampar表示结果图像偏差的阈值,当偏差小于该值,算法停止迭代。_matlab维纳滤波图像复原
文章浏览阅读51次,点赞5次,收藏3次。这是结构体和动态内存管理的结合,事实上这个概念不常用,因为你会发现和线性表中的顺序表几乎如出一辙,区别只是一个是数组,一个是指针,都是需要动态申请内存。包含柔性数组的结构体的内存,用malloc函数申请内存,而由于结构体的大小不包括柔性数组,因此在开辟空间时要大于结构体的大小,用于预期柔性数组的使用。示例:(struct s*)malloc(sizeof(struct s) + 20);3、未知大小的 数组。
文章浏览阅读2.3k次。一、MemCached概念Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信二、MemCac_memcached cachename
文章浏览阅读357次,点赞8次,收藏8次。作为一个学习者,什么样的学习方式、学习路径能够帮助我们更高效、便捷的入门人工智能,不至于错过奔驰而过的“AI”号列车?人工智能时代持续发展,成为新一轮产业变革的核心驱动力和引领未来发展的战略技术,不仅受到政策的支持,国内人工智能市场规模也在不断攀升,相应地对各行各业的人员也产生了巨大的影响,人工智能相关专业掀起了热潮,并且非计算机专业也被迫卷入“转型升级”的道路中。作为一项具有一定门槛的学科,如何避免陷入低效率的学习困境和低质量的培训陷阱?
文章浏览阅读61次。PlugNT CMS v4.6.3 最新功能:弃用标签 selected="commend,stick" 改为andwhere="commend=1 and stick=1"{tmp:baseif test="[tmp:field name="title"]" operate="equals" value="PlugNT"} {tmp:pagelist co..._true and stick
文章浏览阅读458次。ISO 9126质量模型:软件质量模型的6大特性和27个子特性ISO9126软件质量模型是评价软件质量的国际标准,由6个特性和27个子特性组成,建议大家深入理解各特性、子特性的含义和区别,在测试工作需要从这6个特性和27个子特性去测试、评价一个软件。这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这几个方面着手进行测评。一、功能性:1、适合性:提供了相应的功..._考试中质量属性 iso与mccall