android studio-android客户端解析json,出现乱码 ( 没有中文 ) ,请大神指点

问题描述

android客户端解析json,出现乱码 ( 没有中文 ) ,请大神指点

本人使用Tomcat apache-tomcat-8.0.28虚拟服务器,默认utf-8编码

update.json

{"versionName":"2.0","versionCode":2,"description":"Hello word!!","downloadUrl":"http://www.baidu.com"}

android studio 1.3.1 做了个客户端:部分编码如下:

private void checkVersion(){
new Thread(){
@Override
public void run() {

            try {
                URL url = new URL("http://10.0.2.2:8080/update.json");
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                conn.setConnectTimeout(5000);
                conn.setReadTimeout(5000);
                conn.connect();

                int responseCode = conn.getResponseCode();

                if(responseCode==200){
                    InputStream inputStream = conn.getInputStream();
                    String result = StreamUtils.readFromSteam(inputStream);
                    Log.e("System.Out.Print", "result:"+result);

                    //解析Json

                    JSONObject jo = new JSONObject(result);
                    mVersionName = jo.getString("versionName");
                    mVersionCode = jo.getInt("versionCode");
                    mDescription = jo.getString("description");
                    mDownloadUrl = jo.getString("downloadUrl");

                    Log.e("System.Out.Print", "run "+mVersionName+";"+mVersionCode);
                    Log.e("System.Out.Print", "run "+mDescription+";"+mDownloadUrl);
                }

            } catch (MalformedURLException e) {
               // utl错误的异常

                e.printStackTrace();
            } catch (IOException e) {
                //网络错误的异常

                e.printStackTrace();
            }
            catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }.start();
}

public class StreamUtils {

/**
 * readFromSteam() 将输入流读成String后返回
 * @return
 */
public static String readFromSteam(InputStream in) throws IOException {

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    int len = 0;
    byte[] buffer = new byte[1024];

    while((len=in.read())!=-1){
        out.write(buffer,0,len);
    }
        String result = out.toString();
        in.close();
        out.close();
    return result;
    }

}

    每次运行后的结果如下:

    ![图片说明](http://img.ask.csdn.net/upload/201602/21/1456069188_115538.jpg)

    请大神指点

解决方案

在用HttpURLConnection的时候,没有设置默认编码,可能是utf-8和 "ISO-8859-1"混淆了。
然后模拟器和手机不一样的原因是;Android版本不一样导致HttpURLConnection的具体实现不一样,记得Android4.4之后,HttpURLConnection底层采用HttpOK了。

解决方案二:

解决方案三:

解决方案四:

在模拟器中访问Json是正确的

解决方案五:

错误的截屏:

解决方案六:

编码错误,看怎么改下编码

解决方案七:

编码错误,看怎么改下编码

解决方案八:

看着就是编码问题了。。。

解决方案九:

编码的问题,,统一 一下编码

解决方案十:

不只是是不是AndroidStudio的问题。我也是遇到。不是网上说的设置AndroidStudio字体能解决的

时间: 2024-12-03 16:58:40

android studio-android客户端解析json,出现乱码 ( 没有中文 ) ,请大神指点的相关文章

Android studio JNI如何混合编译C和C++啊求大神告知

问题描述 Android studio JNI如何混合编译C和C++啊求大神告知 最近小弟在学习Android studio的开发(毕设)之前完全没接触过Android这边有一个别的大神写的程序包但是小弟无法完整导入最新的Android studio,导入后只有Java和Android部分.C和C++部分都不见了.请问如何完整导入并创造完整的关联呢?

图片-Android studio 预览插件出现的问题,跪求 大神解决

问题描述 Android studio 预览插件出现的问题,跪求 大神解决 解决方案 解决了,只要重装一下sdk下的extra->android support library就正常了

android-关于Android发送短信的扩展问题【具体见内容】,请大神指点

问题描述 关于Android发送短信的扩展问题[具体见内容],请大神指点 是这样的,程序中发送短信功能已经实现了. 因为我发的是类似验证码的信息,要对方同意并把这个验证码回馈给我才算双方达成"协议",但是现在短信内容可以在 短信 应用中看到,就是说我可以直接拿到对方的验证码. 请问有没有方法让这条短信不显示在系统的短信应用中,或者显示出来的是加密后的文字呢?或者发完之后直接删除也行啊-- 求帮助~先谢过大家了~ 解决方案 md5或许能帮上你,这是一种哈希讲明文转换为密文的算法吧

关于安卓开发环境问题-andriod studio ,bin目录下的studio.bat,找不到这个bat,求大神指点

问题描述 andriod studio ,bin目录下的studio.bat,找不到这个bat,求大神指点 本人虾米一个,安装了studio提示需要运行英特尔加速器HAXM,根据网络上大侠们的回复说需要修改bin目录里的studio.bat,结果怎么都找不到我bat,求大侠指点迷津开发环境问题-andriod studio ,bin目录下的studio.bat,找不到这个bat,求大神指点-找不到studio.bat"> 解决方案 重装一下,或者不用加速器(一样可以),另外可以使用geny

xml-WCF 向客户端返回XML数据格式报错,请大神赐教“”超出最大字符串内容长度配额(8192)“”

问题描述 WCF 向客户端返回XML数据格式报错,请大神赐教""超出最大字符串内容长度配额(8192)"" !服务端配置 客户端配置 服务端返回客户端XML数据报错提示 解决方案 http://blog.csdn.net/yang_5/article/details/11775819

Atmel studio 6.0 编译之后PWM无输出,求大神指点

问题描述 Atmel studio 6.0 编译之后PWM无输出,求大神指点 使用的是atmega48芯片,程序如下: #include #include #include #define F_CPU 8000000UL #include #include #define uchar unsigned char #define uint unsigned int //控制单个io口 省略 uint a; //各端口初始化 void PORT_INIT(void) { DDRD=(1<<PD1)

mysql数据库,表格中出现乱码问题。求大神指点!!

问题描述 mysql数据库,表格中出现乱码问题.求大神指点!! 我通过jdbc操作把输入的信息保存到mysql数据库的表格中,但是表格中出现了乱码,本来是要显示中文的!表和库的编码都是utf8啊!还是哪里还要设置什么吗?求大神指点 万分感谢!! 解决方案 http://www.cnblogs.com/stansonwilliam/archive/2012/10/28/2743203.html 解决方案二: 表的字段也要设utf-8 解决方案三: 看下jdbc程序往里边存的时候是不是已经乱码了 解

本地上传html或mht文件到服务器端,如何在客户端打开上传的文件,请大神赐教,很急!!!!!

问题描述 上传了html文件到服务器端后,客户端如何访问上传的html文件,请大神赐教,很急!!!!! 解决方案 解决方案二:上传时将html文件放在服务器的已启动的tomcat服务器中,知道html的路径,这样通过服务器的ip:port/projectName/aa.html就可以访问到该html页面解决方案三:不是放在容器里的,而是放在服务器端的磁盘里的,这是项目组统一规定的!解决方案四:引用楼主zilei0418的回复: 上传了html文件到服务器端后,客户端如何访问上传的html文件,请

中文转换乱码-急:请大神教我文转换为乱码

问题描述 急:请大神教我文转换为乱码 比如中文叫(离我远点),乱码就是?????'è????? . 其他中文名字我该怎么弄成哪样的乱码? 求大神教! 解决方案 题主可以了解一下什么叫做编码,比如说什么是ASCII,Unicode,Unicode和UTF-8的关系,这篇文章很适合入门:ASCII,Unicode和UTF-8 解决方案二: 鼠标右键属性,改为utf-8就OK 解决方案三: 编码问题,只要你设置的编码和页面显示的编码一致就可以了 解决方案四: 编码和解码用不同的码表就可以了