2

Hibernate を介して実装された JPA を使用する Spring Roo アプリがあります。キリル文字が「????」になって使えない DBで。

1) DB へのキリル記号の直接挿入は OK です。

2) DB にキリル文字がある場合、Web ページ上で正常に表示されます。

3)web.xmlに構成のそのような部分があります

 <filter>
    <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

4) IDE でのデバッグ中 (DB への挿入前) のキリル記号は問題なく表示されますが、挿入後に記号を選択すると「????」になります。

5) 「accept-charset=UTF-8」属性を「form」タグに設定しようとし、characterEnc‌ oding=UTF-8 を DB URL に追加しようとし、次の休止状態プロパティを設定しようとしました:

<property name="hibernate.connection.charSet" value="UTF-8"/>
<property name="hibernate.connection.characterEncoding" value="UTF-8"></property>
<property name="hibernate.connection.useUnicode" value="true"></property>

他に何が間違っている可能性がありますか?キリル文字がまだ '????' になるのはなぜですか? ?!

ps Ubuntu 13.04、MySQL 5.5、Spring 3.2、Spring Roo 1.2.3

upd:とうとう解決策が見つかりました: ru_RU と ru_RU.UTF-8 システム ロケールを生成し、ロケールを ru_RU.UTF-8 に設定しました。詳細な手順はこちらです。そして、理由は説明できませんが、すべて正常に動作します!.

「5」以降の pps characterEncoding および useUnicode プロパティは必要ありません。characterEncoding=UTF-8 パラメータを接続文字列に追加する必要がありました。

4

1 に答える 1