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 |
|
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!