如何解决JSON返回的中文乱码?

如何解决JSON返回的中文乱码?,第1张

【 解决方法】:

@RequestMapping(value="/getphone",produces = "text/plaincharset=utf-8")

/**输入手机号码后判断手机号是否存在*/

@RequestMapping(value="/getphone",produces = "text/plaincharset=utf-8")

@ResponseBody

public String getphone(String phone,HttpSession session){

Users u=service.selectPhoneService(phone)

if(u==null){//如果为空,则需要注册

String str="请您先注册,再登录。"

session.setAttribute("str", str)

return "请您先注册,再登录。"

}

return "true"

【方法二,在spring-mvc.xml中添加】:

<!-- 处理请求返回json字符串中文乱码问题 -->

<mvc:annotation-driven>

<mvc:message-converters>

<bean

class="org.springframework.http.converter.StringHttpMessageConverter">

<property name="supportedMediaTypes">

<list>

<value>application/jsoncharset=UTF-8</value>

</list>

</property>

</bean>

</mvc:message-converters>

</mvc:annotation-driven>

解决方法:

1、把所有的中文转为UTF-8编码(本身是utf8的话无须转)

$data="JSON中文"

$newData=iconv("GB2312","UTF-8//IGNORE",$data)

2、把中文的urlencode一下

$testJSON=array('name'=>'中文字符串','value'=>'test')

//echo json_encode($testJSON)

foreach ( $testJSON as $key =>$value ) {

$testJSON[$key] = urlencode ( $value )

}

3、然后json_encode之后再urldecode一下转回来

$test_json_str = json_encode ($testJSON )

echo urldecode ($test_json_str)

查看输出结果为:

{“name”:”中文字符串”,”value”:”test”}

这样可以很好的解决中文JSON乱码问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9986994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存