0

以前、Liferay Portal を使用して、lar ファイルをインポートした後、アラビア文字と「♦」などの特殊文字がクエスチョン マーク「?」になってしまい、データベースをチェックすると、そのように保存されていることがわかります。つまり "?" .

ここで説明されています:アプリケーションサーバーとしてGlassfishを使用したエンコーディングに関するインポート.larファイルの問題

追加-DFile.encoding=UTF8しても役に立ちませんでした。

そしてアラビア語でLiferay自体を使用しても問題はなく(Webコンテンツの追加など)、DBからのデータの取得はうまく機能しています。

最近、私は liferay 5.2.8 から 6.1.20 へのアップグレードを行っています。私は再びその問題に直面しました。アップグレードで触れたすべてのアラビア文字 (一時ファイルとして一時ディレクトリに抽出され、DB に再挿入されました) が破損しました..

したがって、これはGlassfishのファイルシステムに問題があるように思えました。

Tomcat 7.0 を試してみましたが、この問題は発生せず、データは残っていましたが、Glassfish アプリケーション サーバーで解決する必要があります。

参考: Glassfish v2.1.1 、v3.1.2.2 、および ML バージョンと同じ問題。

何か案が?

4

2 に答える 2

1

データベースが使用しているエンコードの種類を確認してください。一般的なアドバイスは、データベース ストレージにも UTF-8 を使用することです。注意: データベースで正しい文字を確認する場合、DB ツールはデータベース自体とは異なるエンコーディングを使用している可能性があります。エンコーディングの問題は常に厄介です。

データベースで UTF-8 以外のエンコーディングが使用されていることがわかった場合は、データベース接続文字列でそのエンコーディングを指定できてラッキーかもしれません (使用しているデータベースによって異なります)。おそらく、スクリプト化または手動で修復する必要があります。

于 2013-01-30T08:12:12.353 に答える
0

The -Dfile.encoding is a Oracle JVM specific setting how to read Java source files. This doesn't have any influence on the charset as specified in the Content-Type header of the HTTP response.

You can add the following to the file glassfish-web.xml (located in the WEB-INF folder):

<parameter-encoding default-charset="UTF-8"/>

If you have .jsp files try that in web.xml:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>
于 2013-01-29T14:22:11.433 に答える