导航:首页 > 编程语言 > javajson中文乱码

javajson中文乱码

发布时间:2022-07-17 14:59:49

‘壹’ java crawler4j抓取页面上的动态信息 结果返回的json值里面的中文变为乱码

在Response添加编码
response.setContentType("text/json");
response.setCharacterEncoding("UTF-8");

如果还是不行,请检查web端写入的时候,是否规定了
data.put("no", java.net.URLEncoder.encode("终极解决办法", "utf-8"));

‘贰’ (java)jsp页面ajax发出请求返回json格式数据 中文乱码问题

你如果没有使用编码集过滤器,
就需要手动设置response的编码集
response.setCharacterEncoding("UTF-8");
这句话要放在这个方法的最前面,就是设置返回头的前面
如果页面传入的参数,在获取时乱码,则需要
request.setCharacterEncoding("UTF-8");

‘叁’ Java中 用ajax发出请求返回JOSN格式数据,中文乱码问题

那就是数据库的问题了,一般在建库的时候会给数据库设置编码格式,像这样
CREATE
TABLE
d_proct
(
id
int(12)
NOT
NULL
auto_increment,
proct_name
varchar(100)
NOT
NULL,
description
varchar(100)
default
NULL,
PRIMARY
KEY
(id)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8;
//主要是这里设置编码
,如果LZ可以的话,最好数据库重建一下再试试,应该可以。
再看看别人怎么说的。

‘肆’ java 接受前台json对象,中文乱码

额怎么会是乱码的啦

你的后台要设置response的utf8的啦

你该这样写jquery的json的啦

varajaxurl=path+"/ajaxServlet?getMeetingId=getMeetingId";
varpara="&dayinfo="+dayStr;
varmeetingidx=0;
$.ajax(
{
url:ajaxurl,
type:'POST',
dataType:'json',//json,xml
async:false,//异步默认true
timeout:20000,
data:para,
error:function()
{
},
success:function(jsonOBJ)
{
meetingidx=jsonOBJ.meetingid;
}
});

‘伍’ Javaweb返回给Android客户端json中文字符乱码

JavaWeb的各种中文乱码终极解决方法:
一、Servlet输出乱码
1.
用servlet.getOutStream字节流输出中文,假设要输出的是String
str
="测试中文"。
1.1
若是本地服务器与本地客户端这种就不用说了,直接可以out.write(str.getBytes())可以输出没有问题。因为服务器中用str.getBytes()是采用默认本地的编码,比如GBK。而浏览器也解析时也用本地默认编码,两者是统一的,所以没有问题。
1.1
若服务器输出时用了,
out.write(str.getBytes("utf-8"))。而本地默认编码是GBK时(比例在中国),那么用浏览器打开时就会乱码。因为服务器发送过来的是utf-8的1010数据,而客户端浏览器用了gbk来解码,两者编码不统一,肯定是乱码。当然,你也可以自己将客户端浏览器的编码手工调用下(IE菜单是:查询View->编码encoding->utf-8),但是这种操作很烂,最好由服务器输出响应头告诉,浏览器用哪种编码来解码。所以要在服务器的servlet中,增加response.setHeader("content-type","text/html;charset=utf-8"),当然也可直接用简单的response.setContentType("text/hmtl;charset=utf-8")。两种的操作是一样一样的。
2.
用servlet.getWirter字符流输出中文,假设要输出的是String
str
="测试中文乱码"。
2.1
若写成out.print(str)输出时,客户端浏览器显示的将全是多个?????的字符,代表在编码表中肯定就找不到相应的字符来显示。原因是:servlet.getWriter()得到的字符输出流,默认对字符的输出是采用ISO-8859-1,而ISO-8859-1肯定是不支持中文的。所以肯定要首先要做的第一件事:是要将服务器对象输出字符能支持中文的。其次服务器向客户端写回的响应头要告诉客户端是用了哪种编码表进行编码的。而实现这两个需求,只需要response.setContentType("text/hmtl;charset=utf-8")。就搞定了。特别注意:response.setContentType("text/html;charset=utf-8")要放在PrintOut
out
=
response.getWriter()代码的前面,否则只是有告诉客户端用什么码表编码的功能,而服务器端还是用ISO-8859-1编码了。再特别提示下:在同一Servlet中的doGet或doPost方法中,不能既用response.getOutputStream又用response.getWriter,因为这两种response的响应输出字节流与字符流是冲突的,只能用其一。
二、Servlet文件下载,中文乱码情况。
关键是下载时响应头
content-disposition中attachment;filename=文件名。这个文件名filename不能是含有中文字符串的,要用URLEncoding编码进行编码,才能进行进行http的传输。
三、Servlet的response增加addCookie,cookie中value的中文码问题解决方法。若想将cookie中存放中文的值,必须用Base64编码后,发给客户浏览器端进入存储。而下次客户端浏览访问是带回来的cookie中的值,是经过Base64编码的,所以需要用Base64解码即可。
Base64编码主要是解决将特殊字符进行重新编码,编码成a-b、A-B、0-9、+与/,字符52,10个数字与一个+,一个/
共64个字符。它的原理是将原来3个字节的内容编码成4个字节。主要是取字节的6位后,在前面补00组成一个新的字节。所以这样原来的3个字节共24,被编码成4个字节32位了。
四、获取请求参数乱码
GET方式的乱码:
如<a
href=”/demo5/servlet/RD2?name=中国”>CN</a>,直接用request.getParameter得到的字符串strCN将会乱码,这也是因为GET方式是用http的url传过来的默认用iso-8859-1编码的,所以首先得到的strCn要再用iso-8859-1编码得到原文后,再进行用utf-8(看具体页面的charset是什么utf-8或gbk)进行解码即可。new
String(strCn.getBytes(“ISO-8859-1”),“UTF-8”);

‘陆’ 新浪JAVA API返回的JSON数据里面中文乱码

这是unicode编码,不是乱码,你进行Unicode转码就出来了

给你写个方法转码,将unicode传递进去返回字符串

	publicStringconvert(StringutfString){
StringBuildersb=newStringBuilder();
inti=-1;
intpos=0;

while((i=utfString.indexOf("\u",pos))!=-1){
sb.append(utfString.substring(pos,i));
if(i+5<utfString.length()){
pos=i+6;
sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16));
}
}

returnsb.toString();
}

‘柒’ 如何解决JSON返回的中文乱码

  1. @RequestMapping(value="/getphone",proces = "text/plain;charset=utf-8")

  2. /**输入手机号码后判断手机号是否存在*/
    @RequestMapping(value="/getphone",proces = "text/plain;charset=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";

‘捌’ 为什么java 后台向前台传json文件会是乱码呢

后台发送的字符集,和页面的字符集,不对应

~
~
~

‘玖’ json字符串中文乱码怎么解决

解决方法:
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乱码问题。

阅读全文

与javajson中文乱码相关的资料

热点内容
韩剧 女儿突然带着孙子来找他 浏览:561
2020年情感电影院上映列表 浏览:993
变身小说男变女嫁人 浏览:34
原罪未删减床戏在什么时间 浏览:848
最新全裸韩剧伦理片有哪些 浏览:294
男主帅的日本粉红电影 浏览:802
重生到香港混黑道小说 浏览:501
男作家的妻子出轨孙志 浏览:913
男主是鸭子女主是大老板 浏览:564
日批的小说 浏览:580
周香允参与过所有的电影 浏览:928
红羊出品有哪些 浏览:400
14路末班车电影陈明辉结局 浏览:977
金庸小说全集下载 浏览:792
美国电影主角和老师偷情 浏览:132
成人两性微电影 浏览:408
台湾三级的绝版老电影 浏览:161
电影双男主肉 浏览:986
重生之北美建国 浏览:129
每天工作4小时的程序员 浏览:462