Home  >  Article  >  Java  >  The problem of json transmission data garbled in java

The problem of json transmission data garbled in java

尚
Original
2019-12-30 09:24:073537browse

The problem of json transmission data garbled in java

Solution to the garbled problem of json transmission data in java: (Recommended: java video tutorial)

1. Perform ISO-8859 on the parameters first -1 encoding, and then decoding with utf-8

    @RequestMapping(method=RequestMethod.GET)
    @ResponseBody
    public ResponseEntity<ResultModel> searchBorrows(String borrow_name) 
    throws UnsupportedEncodingException{
           //解决乱码问题
         System.out.println("编码前===:"+borrow_name);//乱码
         String borrowName=new String(borrow_name.getBytes("ISO-8859-1"),"utf-8");
         System.out.println("编码后:========="+borrowName);//正常

2. If it is a general request (non-ajax json** request garbled**, configure the Chinese filter directly in web.xml) as follows:

<filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern><!-- 对请求项目下所有资源进行过滤-->
    </filter-mapping>

When springmvc is not used, you can also add this sentence to solve the garbled problem of post requests: request.setCharacterEncoding("UTF-8");
Note: tomcat8 has solved the garbled problem of get requests. Yes, tomcat7 still needs to solve it by itself

3. The json data of ajax is garbled

Sometimes asynchronous requests are needed in the project, which can be implemented in the annotations in the springmvc configuration file Just add two converters to the adapter and mapper tags, which can solve the problem of garbled characters in json data requests and responses (if the tomcat encoding has not been changed, there will still be garbled characters, and all garbled characters are caused by many factors).

The following is to configure the two json converters in spinngmvc to solve the problem of json data request and response garbled characters.

<!-- 注解的适配器和映射器 -->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <!--@ResponseBody 中文响应乱码 -->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>
                            text/plain;charset=UTF-8
                        </value>
                        <value>
                            text/html;charset=UTF-8
                        </value>

                        <value>
                            application/json;charset=UTF-8
                        </value>
                        <value>
                            application/x-www-form-urlencoded;charset=UTF-8                     
                        </value>
                    </list>
                </property>
            </bean>


<!-- JSON中文请求乱码及解决 
HttpMediaTypeNotAcceptableException: Could not find acceptable representation  异常信息-->
            <bean id="jacksonMessageConverter"
                class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>
                            application/json;charset=UTF-8
                        </value>
                        <value>
                            application/x-www-form-urlencoded;charset=UTF-8                     
                        </value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

For more java knowledge, please pay attention to the java basic tutorial column.

The above is the detailed content of The problem of json transmission data garbled in java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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