解析微信接口返回的json 中文昵称为乱码 怎么回事

package Htttp;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;

public class HttpUtils_touxiang {

public HttpUtils_touxiang() {

}

public static Touxiang getJsonContent(String url_path){


        try {
            URL url = new URL(url_path);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            connection.setConnectTimeout(3000);
            connection.setRequestMethod("GET");

            connection.setDoInput(true);

            int code = connection.getResponseCode();
            if(code ==200){
            return changeInputStream(connection.getInputStream());


            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



    return null;

}

private static Touxiang changeInputStream(InputStream inputStream) {
    // TODO Auto-generated method stub
    String jsonString = "";
    String nickname = null;
    String headimgurl =null;
    Touxiang touxiang = null;
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    int len = 0;
    byte[] data = new byte[1024];
    try {
        while((len = inputStream.read(data))!=-1){

            outputStream.write(data,0,len);
        }
        jsonString = new String(outputStream.toByteArray());
        //到这里已经是乱码了
        System.out.println("先前返回的是:"+jsonString);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    JSONObject jsonObject;
    try {
        jsonObject = new JSONObject(jsonString);
        System.out.println("返回的是:"+jsonObject);
        nickname = jsonObject.getString("nickname").toString();
        headimgurl = jsonObject.getString("headimgurl");


        touxiang = new Touxiang();
        touxiang.setHeadimgurl(headimgurl);
        touxiang.setNickname(nickname);
        System.out.println("你的昵称是:"+nickname);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    return touxiang;
}

}


0

8个回答

 jsonString = new String(outputStream.toByteArray());
        //到这里已经是乱码了
        System.out.println("先前返回的是:"+jsonString);

改成
jsonString = new String(outputStream.toByteArray(),"UTF-8");//微信接口是UTF-8格式的。
        //到这里已经是乱码了
        System.out.println("先前返回的是:"+jsonString);
3
u012536005
小横 好了 谢谢您啊
大约 4 年之前 回复

第一种:get请求,读取数据的时候,指定编码 UTF-8
in = new BufferedReader(new InputStreamReader( connection.getInputStream(), "utf-8"));

第二种:post请求

get会有缓存,post没有。

2
u012779991
武云鹏 非常感谢,用到了
3 年多之前 回复
u010899580
0150 这个是对的。
3 年多之前 回复
u010899580
0150 这个是对的。
3 年多之前 回复

在你请求的时候指定一下编码 “utf-8”试试

0
u012536005
小横 我不知道在哪里指定编码utf——8 啊 你能具体说一下吗
大约 4 年之前 回复

你可以试试获取信息时,设置一下文件内容的编码格式,例如:UTF-8、GB2312

0

你收到数据后,用utf8解码。当然还可能是其他解码方式,具体要看官方的说明文档

0
    jsonString = new String(outputStream.toByteArray(),"GB2312");
0

第一种:get请求,读取数据的时候,指定编码 UTF-8
in = new BufferedReader(new InputStreamReader( connection.getInputStream(), "utf-8"));

第二种:post请求

get会有缓存,post没有。

0

三楼的代码试试。就是从响应流Inputstream读取数据时设置编码方式。
另一种方式的等效示例代码:

 private static Touxiang changeInputStream(InputStream inputStream) {
    // TODO Auto-generated method stub
     String jsonString = "";
    String nickname = null;
    String headimgurl =null;
    Touxiang touxiang = null;
    InputStream inputStream = null;
    InputStreamReader inputStreamReader = null;
    BufferedReader bufferedReader = null;
    try {
        inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
        bufferedReader = new BufferedReader(inputStreamReader);
        String str = null;
        StringBuffer buffer = new StringBuffer();
        while ((str = bufferedReader.readLine()) != null) {
            buffer.append(str);
        }

        jsonString = buffer.toString();
        } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }

    ....后面的代码
   }
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
json_encode返回的中文乱码,解析不出
版权声明:本文为原创文章,未经允许不得转载。njson_encode返回的中文乱码,解析不出,json_encode里面加个参数就行了njson_encode($data,JSON_UNESCAPED_UNICODE);nnn...
Retrofit 请求数据返回乱码问题笔记
使用默认Gson解析,一直解析错误n java.lang.IllegalStateException: ExpectedBEGIN_OBJECT but was STRING at line 1 column 1 path $n一开始以为Gson解析问题 后来发现不是 因为我把Gson换成了自定义的 StringConverterFactory或者ScalarsConverterFactory 的
[已解决]微信公众平台开发 客服系统回复文本显示json_encode|unicode中文乱码
新手入门总会遇到头疼的问题,客服系统回复文本显示中文乱码,如下:导致原因:在 curl post 方式调用客服接口时,传参过程中使用了 json_encode 函数对变量进行 JSON 编码,我们习惯性的不填写第二个参数,或者使用框架里封装好的 json 函数,导致中文乱码的问题;解决方法:在 json_encode 函数加上第二个参数,完美解决微信客服系统的中文乱码问题;代码: funct...
网页获取JSON中文返回乱码解决方案(java)
懒得考虑各种字符编码问题了,用了一个比较暴力的方法,不只中文,所有双字节文字都可以避免乱码问题。
JSON返回的数据中文乱码问题!!!
服务器返回的是utf-8,jsp页面上也是utf-8,数据库也是utf-8怎么就是乱码呢!!!!rn在网上天昏地暗地找了两天总算有解决方案了:rnrnrn问题出在getHttpResponse 输入流!rnrnrnin = new BufferedReader(new InputStreamReader(connection.getInputStream()));rnrnrnrn改为rnrnrni
网页获取JSON中文返回乱码解决方案(java + js)
解决所有双字节字符串json返回乱码问题,返回数据如果已html形式显示,无需做任何处理,如果是在alert中,或在文本框中,用附带的js中的方法处理一下即可。
返回json字符串,并解决中文乱码问题
通过response对象返回rnrnrnrn@RequestMapping(valuern = "/produces", produces = "application/json"):表示将功能处理方法将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/json”时即可匹配;
Json操作及中文乱码解决方案
本Demo主要针对jquery的$.getJSON操作,返回json, 针对传参出现的中文乱码, json里出现中文乱码。
python3解析json格式中文乱码
写在最前面:nn nn工作中遇到json字符串返回结果。然后用dumps格式化了一下,结果中文就乱码了,其实也不是乱码,被转为了utf-8而已。nnn "code": 1,n "msg": "\u670d\u52a1\u5b9e\u4f8b\u7f16\u7801Nginx6789\u5df2\u5b58\u5728"nn nn尝试直接decode,不行,报错nnnAttributeError: ...
Spring mvc 使用Gson 返回Json数据 中文乱码问题
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:nMarkdown和扩展Markdown简洁的语法n代码块高亮n图片链接和图片上传nLaTex数学公式nUML序列图和流程图n离线写博客n导入导出Markdown文件n丰富的快捷键n快捷键n加粗 Ctrl + B n斜体 Ctrl + I n引用 Ctrl
JsonCpp解析\u中文乱码_修改源码_完美解决
jsoncpp解析\u中文解析不出来,修改源码jsoncpp-0.6.0-rc2 完美解决问题。
解决微信安卓SDK获取用户昵称时中文乱码的问题
在使用微信第三方登录时,获取到的用户信息,所有的中文都是乱码,我们可以这样处理一下,就解决了rnnew String(response.getBytes("ISO-8859-1"),"UTF-8")
ios json解析数据转化为中文
- (NSString*)dataToJsonString:(id)object {rnrn    NSString *jsonString =rnnil;rnrn    NSError *error;rnrn    NSData *jsonData = [NSJSONSerializationrndataWithJSONObject:objectrnrn                    
微信集成后返回用户信息昵称乱码问题
微信集成完毕后,拿到返回信息发现昵称是乱码,折腾好久搞定,上代码 String nickname = response.data.nickname;n try {n nickname = new String(nickname.getBytes("ISO-8859-1"), "UTF-8");
JackSon解析json中文出现的编码问题
项目使用了SpringMVC框架,使用@RequestBody交互数据的时候出现了下面的异常: rn rn很明显是JackSon解析json出现了编码问题。 rn原因是而json字符串的分隔符必须是英文标点,当json字符串中含有中文时,使用jackson解析会出异常。rnrn目前有两种解决方式:rnrn第一种方式: rn在服务器中修改JVM配置: rn tomcat: rn 在catalina.bat文...
解决json 中文乱码的问题
n使用json输出字符串时,经常会出现中文乱码的问题。rn需要设置一下,下面的参数就可以解决中文乱码的问题:rnresponse.setContentType("text/json");   response.setCharacterEncoding("UTF-8");rn rn rn实例:rnJSONArray json = JSONArray.fromObject(resp);  Writer...
python3 json中文乱码输出问题
问题描述ndic = {'words':"帮我打开电视"}n>>> import jsonn>>> json.dumps(dict)n'{"words": "\\u5e2e\\u6211\\u6253\\u5f00\\u7535\\u89c6"}'nn输出中文依然为unicode编码.n原因njson解析中文会默认使用的ascii编码.n解决方法n指定ensur..
微信开发中文乱码问题总结
1.servlet中设置request和response编码rnrequest.setCharacterEncoding("UTF-8");nresponse.setCharacterEncoding("UTF-8");rn2.解析xml字符串时需要设置编码rnrnpublic static Map parseXml(String xmlStr) throws Exception {n
springmvc 使用fastjson 处理 json 数据时中文乱码
原因: nspringmvc在处理请求时,默认采用的是 ISO-8859-1 编码格式,所以在处理一些json格式的时候,会出现中文乱码。nn在网上找了很多解决方案,写什么转换类,在Spring中添加配置云云,但是结果还是乱码。感觉或许是版本的原因导致这些方法不起作用。nn最终发现在RequestMapping中添加如下配置即可解决:nnnnproduces = {"application/jso...
高德地址解析返回json获取坐标,乱码问题处理札记
n public static List<String> geocode(String addr) throws IOException, JDOMException{n //对传入的需要解析的地址,编码n String encode = URLEncoder.encode(addr,"UTF-8");n StringBuffer str = ne...
springboot解决返回前台json数据中文变?问题
nimport com.fasterxml.jackson.databind.ObjectMapper;nimport org.springframework.context.annotation.Bean;nimport org.springframework.context.annotation.Configuration;nimport org.springframework.http.co...
JS中的JSON和AJAX中文乱码
1.这是从数据库取出的数据,在servlet处绑定为json数据,再发回到ajax前台,这里就会遇到两个问题:rn①中文乱码问题。在后台服务端不存在乱码的问题,可以正常输出,但是到了前台所有的中文都会变成问号。rn原因是前后台的编码不一致导致,一般前台的编码默认为UTF-8,因此在后台设置:rn                rnresponse.setCharacterEncoding("UTF
用struts2开发的App后台,返回json数据中文为问号的解决办法
一个人开发前台app和后台,由于对后台框架了解的不多,暂用struts2+hibernate搭建后台。n遇到一个问题,就是struts2的返回值中,中文显示为问号(?),上网查了很多文章才找到了解决方法,提供了两种方案,只有第二种可以解决乱码的问题,一开始用的第一种方案,就是遇到乱码问题,后来采用的第二种就可以了。废话不多说,看代码。n第一种:nstrust.xml配置文件
JSON字符串Gson,JSONObject解析中文乱码,接口
mysql数据库中有一个字段类型为json,而且其中存在key=中文,而不是key=“中文”,这种数据在对外提供接口数据的时候,发现页面返回的数据是乱码!!!!我勒个去!Debug时发现,无论使用JSONObject还是Gson去解析从mysql中查询出来的字符串得到的结果都是乱码!后来发现了下面这篇博客的内容后尝试后成功了!1.比如接口传参数为中文会乱码接口中传过来key=中文;;;;而不是这种类
服务端传来的JSON数据出现乱码,中文显示为"??????" 多个问号
问题描述:服务端传来的JSON数据出现乱码,中文都显示为”????????”。nn这是出现该错误的原码,请仔细观察注释部分,相信你一看就明白了。 nnn解决方案:编码设置需要设置在IO流前面,否者编码无效,如果你遇到该问题,请查看是否写错顺序了。...
微信小程序接受服务器php json 中文成乱码之我的情况
   本地php中用echo json_encode($data, JSON_UNESCAPED_UNICODE)(参考这里https://blog.csdn.net/qmhball/article/details/45690017),可以成功输出汉字。同样的代码放在服务器上,小程序却接收不到数据。nn尝试解决方法:nn1.网上查询许久不能解决。nn2.将服务器直接在浏览器输出,要么输出为空,要么...
nodejs读取本地中文json文件出现乱码
1. 确定json文件是UTF-8 无BOM编码的的。如果有BOM,会在读取第一行的时候出现乱码。rnrnrnPer "fs.readFileSync(filename, 'utf8') doesn't strip BOM markers #1918", fs.readFile isrn working as designed: BOM is not stripped from the heade
C#接收json数据后中文乱码解决方法
C#接收Json格式数据,中文出现乱码解决方法
BufferedReader获取json的时候有中文乱码解决
StringBuilder json = new StringBuilder();  rn        try {  rn            URL urlObject = new URL(url);  rn            URLConnection uc = urlObject.openConnection();  rn            BufferedReader in =
tomcat 中部署的应用响应json数据乱码解决办法
原来响应的json中中文乱码rnrnrn找到 Tomcat\conf\server.xml文件,加上 URIEncoding='UTF-8'rn <!-- 原配置 n n -->n n rn再在 java程序中rn // 设置编码n response.setContentType("text/html;charset=utf-8");rn重启 tomcat ,如果还
java返回json请求中文变成问号问题
原来在个人项目时,用layui的数据表格获取数据时,不会出现中文变问号问题nn后来换了个项目,发现返回的json数据到页面中文变成了???问号。nn于是开始排查问题出现的原因,首先jsp页面头部确保使用了UTF-8编码:nnn&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot;...
解决Springboot使用FastJson 返回中文乱码的问题
两种方法:n一、在启动类中覆写的configureMessageConverters方法里添加设置n @Overriden public void configureMessageConverters(List> converters) {n super.configureMessageConverters(converters);n // 1、需要先定义一个 convert 转换消息
jquery json中文乱码
jquery数据请求中文乱码nn以为是前端的代码的问题,结果是SpringMVC配置问题,配置如下即可nnnn &amp;lt;mvc:annotation-driven&amp;gt;n &amp;lt;mvc:message-converters&amp;gt;n &amp;lt;bean class=&quot;org.springframework.http.converter.StringHtt...
(配置消息转换器)解决后台返回json数据到前台时页面时中文显示乱码问题
(配置消息转换器)解决后台返回json数据到前台时页面时中文显示乱码问题nnSpringMVC.xml中加nnn&amp;lt;!-- 配置消息转换器(解决中文乱码问题)--&amp;gt;n &amp;lt;mvc:annotation-driven&amp;gt;nn &amp;lt;mvc:message-converters register-defaults=&quot;true&quot;&amp;gt;n &amp;lt;bean n ...
解决@RequestMapping与response实体类转json中文乱码问题
@RequestMapping(&quot;value&quot;)n@ResponseBody今天写web,一直用@responseBody返回实体类对象,都是OK的,如上后来碰到既返回实体对象集合又返回单个数值的情况,改用response返回,发现中文全都变成了问号网上有人说用这种方式@RequestMapping(value=&quot;value&quot;, produces=&quot;application/json; charse...
ajax请求数据,Json返回到页面的数据出现???中文乱码问题。
应用场景:解决后台返回数据出现乱码解决后:1:代码 @RequestMapping(value=&amp;amp;quot;updateRemindGoods&amp;amp;quot;,produces=&amp;amp;quot;text/html;charset=UTF-8&amp;amp;quot;)n @ResponseBodyn public String updateRemindGoods(n HttpServletRequest request,
(org.json.JSONObject类)java使用JSONObject读取json文件,出现中文乱码
出现问题的代码n//从json文件中读取数据n StringBuffer stringBuffer = new StringBuffer();n try {n BufferedReader bufferedReader = n new BufferedReader(new InputStreamReader(new FileInputStream(file)));n Strin...
springmvc返回json中文乱码及使用jackson自动转换
<beans xmlns="http://www.springframework.org/schema/beans"n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"n xmlns:context="http://www.springf
使用Gson解析键名为中文的json字符串
通过@SerializedName 给变量加上别名的方式实现public class JsonBean {n public int ret;n public Response response;nn public static class Response {n public TagCategory tag_category;n n pu
基于微信公众号开发,调用其他接口Url参数乱码问题
1.背景介绍rn根据公司业务需求,基于微信公众号做了一套虚拟充值的卖卡功能,除了需要调用自己的接口,还需要调用微信的发红包等接口,但是接口采用的编码格式不统一,造成了在解析url参数返回数据时出现乱码问题,造成微信发送红包失败。rn2.解决办法rn1)在网上找了很多的办法,第一个就是在接收数据的界面,进行url参数的解码,rn stringrnURLDecodern = HttpUtility.U
文章热词 CAVLC系数矩阵解析 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 微信接口开发教程 app微信接口开发教程