Solution to java submission of garbled characters:
1. If the submission method is post, and you want to avoid garbled characters, you only need to set the encoding of the request object on the server side. The client Which encoding is submitted by the client, the server-side request object is received in the corresponding encoding. For example, if the client is submitted in UTF-8 encoding, then the server-side request object is received in UTF-8 encoding (request.setCharacterEncoding("UTF -8"))
2. If the submission method is get, setting the encoding of the request object is invalid. The request object still receives data in the default ISO8859-1 encoding. Therefore, if you want to avoid garbled characters, you can only After receiving the data, manually convert it. The steps are as follows:
1). Obtain the data submitted by the client, and what you get is a garbled string, data="???è?????"
String data = request.getParameter("paramName");
2). Search the ISO8859-1 code table and get the byte array of the original data submitted by the client
byte[] source = data.getBytes("ISO8859-1");
3). Construct characters with the specified encoding through the byte array String, solve garbled characters
data = new String(source, "UTF-8");
Construct a string with the specified encoding through a byte array. The encoding specified here is based on the character encoding used by the client when submitting data. If it is GB2312 , then set it to data = new String(source, "GB2312"), if it is UTF-8, then set it to data = new String(source, "UTF-8")
3. Client If you want to transmit data to the server, you can submit it through a form, or you can add parameters after the hyperlink. For example:
<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=房明">点击</a>
Click the hyperlink, and the data is transmitted to the server in the form of get, so receive The problem of Chinese garbled characters will also occur when using Chinese data. The method to solve the problem of Chinese garbled characters is the same as the above-mentioned method of handling the problem of garbled Chinese data when submitting forms in the get method, as shown below:
String name = request.getParameter("name"); name =new String(name.getBytes("ISO8859-1"), "UTF-8");
In addition, there are other things that need to be mentioned One point is that if the URL address is followed by Chinese data, then the Chinese parameters are best processed using URL encoding, as shown below:
<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=<%=URLEncoder.encode("房明", "UTF-8")%>">点击</a>
For more java knowledge, please pay attention to the java basic tutorial column.
The above is the detailed content of Java submission garbled code solution. For more information, please follow other related articles on the PHP Chinese website!