2

UTF-8に問題があります。

common.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

typical.jsp

<%@ include file="common.jsp" %>

ページヘッド

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<form id="screenObject" accept-charset="UTF-8" action="/SiteAdmin/articleHeaderEdit?articleId=15" method="post">

テキストフィールドにlatin1以外の文字を入力し、[保存]をクリックします。バリデーターは別のフィールドについて文句を言い、送信を停止します。これがデータベースに到達することはないため、UTF-8を処理するデータベース機能はこの図には含まれていません。ページは適切なエラーで再表示されますが、入力されたテキストはすべて混乱しています。latin1以外の文字はすべて、ぎこちない文字に変換されます。

重要な場合に備えて、Spring3MVCを使用しています...

試み

これをビューリゾルバーに追加しても役に立ちませんでした:

<property name="contentType" value="text/html;charset=UTF-8" />

解決

web.xmlにエンコーディングフィルターを追加します。

<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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4

1 に答える 1

5

データ フローのどこかで、文字列をバイトとしてエンコードするか、バイト ストリームを文字列としてデコードするために、UTF-8 以外のものを使用しています。これは通常、デフォルトの文字エンコーディングを使用する API 呼び出しを使用した場合に発生します。あなたのコードを知らなくても、それが私たちがあなたに伝えることができるすべてです.

また、Spring の文字エンコーディングの問題については、このリンク[spring] character encodingを参照するか、フォーラムで他の多くの投稿を検索してください。

于 2012-04-15T16:24:29.297 に答える