Home > Java > JavaBase > Solution to java parameter garbled problem

Solution to java parameter garbled problem

Release: 2020-01-13 16:11:01
Original
2130 people have browsed it

Solution to java parameter garbled problem

For data submitted in Post mode, you can use request.setCharacterEncoding("gb2312"); to explicitly specify the encoding to use when obtaining request parameters. But this method is only valid for Post submission.

request.setCharacterEncoding("gb2312"); The reason why it is invalid for GET submission is that this code only sets the encoding of the request entity, and the data submitted by GET is stored in the request line [resource name?param1 ="Zhang San"¶m2=123], so the GET request method is invalid.

For the data submitted by Get method, you can only solve the garbled code manually:

1

2

String newName=newString(name.getBytes("ISO8859-1"),"gb2312");

String user=newString(request.getParameter("user").getBytes("ISO-8859-1"),"UTF-8");

Copy after login

Of course, this method is also effective for Post method.

You can configure the URIEncoding of the http connector in tomcat's server.xml to specify the encoding used by the server by default when obtaining request parameters.

The following statements are usually used in servlets to solve the problem of Chinese garbled characters:

request.setCharacterEncoding() is to set the value obtained from the request or the value taken from the database.

The purpose of response.setContentType() is to control the behavior of the browser, that is, to control the browser to use the specified encoding to decode (specify the encoding of the HTTP response and specify the encoding displayed by the browser).

response.setCharacterEncoding() is used to solve the problem of garbled strings output by response.getWriter(); if it is response.getOutputStream(), there is no need for this solution, because the meaning of this sentence It is to decode the data in the response object in UTF-8 and send it to the browser.

response.getOutputStream().write("Chinese".getBytes()) outputs data. This is a byte stream. Whatever encoding is used when writing to memory will be used for output.

For more java knowledge, please pay attention to the java basic tutorial column on the PHP Chinese website.

The above is the detailed content of Solution to java parameter garbled problem. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template