Java学习:如何处理中文参数?

国内新闻 阅读(999)

蘑菇说我两天前想分享互联网

Java学习:如何处理中文参数?

为什么中文乱码会产生乱码,这是由于服务器和客户端之间的编码不一致引起的。因此,解决方案是在客户端和服务器之间设置统一的编码,然后遵循该编码。数据收发

获取中文乱码

//获取表单提交的名称

string name=request.getParameter('name');

name=new String(name.getBytes('ISO-8859-1'),'UTF-8');

数据在Tomcat7及更低版本上以UTF-8编码传输到服务器。服务器上的请求对象使用ISO-8859-1的字符编码来接收数据。因此,服务器和客户端之间传递的代码不一致。会产生中文乱码。

解决方法:接收数据后,首先以ISO8859-1字符编码获取请求对象接收到的原始数据的字节数组,然后通过字节数组构造具有指定编码的字符串以解决乱码问题。

Tomcat8的版本基本上不乱码,因为服务器可以自动转换url的编码格式

POST乱码

由于客户端以UTF-8字符编码将表单数据发送到服务器,因此还需要将服务器设置为以UTF-8字符编码接收,并且必须在接收参数之前对其进行定义;

///设置请求参数的编码格式-对于GET无效

request.setCharacterEncoding( 'UTF-8');

Servlet输出中文

1页返回乱码

浏览器无法识别返回的中文的编码格式。默认情况下将使用GB2312。如果返回UTF-8格式,它将在浏览器中显示乱码。

2如何解决内容乱码

response.setContentType(文本/html;字符集=UTF-8');

3种全面设置

在接收参数值之前:

request.setCharacterEncoding('UTF-8'); //设置请求的编码

response.setCharacterEncoding('UTF-8'); //设置响应的编码

response.setContentType('text/html; charset=utf-8'); //设置响应类型和响应内容

收款报告投诉

Java学习:如何处理中文参数?

为什么中文乱码会产生乱码,这是由于服务器和客户端之间的编码不一致引起的。因此,解决方案是在客户端和服务器之间设置统一的编码,然后遵循该编码。数据收发

获取中文乱码

//获取表单提交的名称

string name=request.getParameter('name');

name=new String(name.getBytes('ISO-8859-1'),'UTF-8');

数据在Tomcat7及更低版本上以UTF-8编码传输到服务器。服务器上的请求对象使用ISO-8859-1的字符编码来接收数据。因此,服务器和客户端之间传递的代码不一致。会产生中文乱码。

解决方法:接收数据后,首先以ISO8859-1字符编码获取请求对象接收到的原始数据的字节数组,然后通过字节数组构造具有指定编码的字符串以解决乱码问题。

Tomcat8的版本基本上不乱码,因为服务器可以自动转换url的编码格式

POST乱码

由于客户端以UTF-8字符编码将表单数据发送到服务器,因此还需要将服务器设置为以UTF-8字符编码接收,并且必须在接收参数之前对其进行定义;

///设置请求参数的编码格式-对于GET无效

request.setCharacterEncoding( 'UTF-8');

Servlet输出中文

1页返回乱码

浏览器识别不到返回的中文是什么编码格式,就会默认使用GB2312,如果返回的是UTF-8格式的那么在浏览器上就会显示乱码的问题

2如何解决内容中的乱码

response.setContentType('text/html;charset=UTF-8');

3综合设置

在接收参数值之前:

request.setCharacterEncoding('UTF-8');//设置请求的编码

response.setCharacterEncoding('UTF-8');//设置响应的编码

response.setContentType('text/html;charset=utf-8');//设置响应类型和响应内容

的编码