json在后台封装后,返回中文乱码

更高版本的spring可以利用设置 @RequestMapping 的 produces 参数

@RequestMapping(value="/upload",produces = "text/html;charset=UTF-8")
@ResponseBody 
    public  jsonObject upload(@RequestParam("file") MultipartFile file,HttpServletRequest request, HttpServletResponse response) throws Exception{
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html");

            //创建Json对象
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("msg","hello");
            jsonObject.put("msg2","world");
            return jsonObject ;

    }

Spring版本:3.*RELEASE

这里统一转换为utf-8
因为低版本的spring缺少许多方法,所以不能用produces

方案一、将json数据写入PrintWriter 流中

@RequestMapping(value="/upload")
    public  void upload( HttpServletResponse response) throws Exception{

            //创建Json对象
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("msg","hello");
            jsonObject.put("msg2","world");
            try {
           response.setContentType("text/html;charset=utf-8");         
            PrintWriter out = response.getWriter(); //获取写入对象  
            out.print(json); //将json数据写入流中  
            out.flush();  
            out.close();
              } catch (IOException e) {
                 e.printStackTrace();
            } //获取写入对象 

    }

方案二、将json数据写入ServletOutputStream 流中

@RequestMapping(value="/upload")
    public  void upload(@RequestParam("file") MultipartFile file,HttpServletRequest request, HttpServletResponse response) throws Exception{
         //创建Json对象
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("msg","hello");
            jsonObject.put("msg2","world");
            try {

            //要将json对象转换为string类型
                String json = jsonObject.toString();
                 ServletOutputStream os = response.getOutputStream(); //获取输出流  
                 os.write((json.getBytes(Charset.forName("utf-8")))); //将json数据写入流中  
                 os.flush(); 
                 os.close();    
            } catch (IOException e) {
                 e.printStackTrace();
            } //获取写入对象 

    }
 
 
G
M
T
 
 
检测语言世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语信德语修纳语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语卢森堡语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语吉尔吉斯语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语夏威夷语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语库尔德语弗里西语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语普什图语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语科萨科西嘉语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苏格兰盖尔语苗语英语荷兰语菲律宾语萨摩亚语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿姆哈拉语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语
 
世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语信德语修纳语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语卢森堡语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语吉尔吉斯语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语夏威夷语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语库尔德语弗里西语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语普什图语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语科萨科西嘉语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苏格兰盖尔语苗语英语荷兰语菲律宾语萨摩亚语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿姆哈拉语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语
 
 
 
 
 
 
 
 
 
文本转语音功能仅限200个字符
 
 
选项 : 历史 : 反馈 : Donate 关闭

猜你喜欢

转载自blog.csdn.net/zhuiqiuzhuoyue583/article/details/81124249
今日推荐