Springmvcプロジェクト設定ResponseBody戻りString符号化
4900 ワード
質問シーン
現在、プロジェクトとブラウザは一般的にutf 8符号化されており、ブラウザを介してバックエンドインタフェースにアクセスする場合は通常問題ありません.
バックエンドで別のサービスのインタフェースを呼び出すと、戻り値の符号化はデフォルトiso-8859-1
で、文字列に中国語が含まれている場合、呼び出し元は文字化けします.
ソリューション
springmvcプロファイルを変更し、converters
を追加します.コードは次のとおりです.<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8value>
list>
property>
bean>
mvc:message-converters>
mvc:annotation-driven>
または<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
bean>
mvc:message-converters>
mvc:annotation-driven>
サービス側はresponse header
に符号化を設定し、デフォルトの符号化が設定されていないシーンでは文字化けは発生しません.
springmvcプロファイルを変更し、
converters
を追加します.コードは次のとおりです.<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8value>
list>
property>
bean>
mvc:message-converters>
mvc:annotation-driven>
または
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
bean>
mvc:message-converters>
mvc:annotation-driven>
サービス側は
response header
に符号化を設定し、デフォルトの符号化が設定されていないシーンでは文字化けは発生しません.