Tomcat 実行時の JVM エンコーディングの問題を修正

Tomcat 実行時の JVM エンコーディングの問題を修正

質問:

最近、プロジェクトを展開すると文字化けしたデータが出てきました。確認したところ、プロジェクトはUTF-8エンコード形式を使用しており、データも使用されていました。しかし、呼び出しインターフェースを通じて相手に送信される際に文字化けが発生していました。

Windows 環境に展開されるため、Windows のデフォルトのエンコーディングは GBK であり、JVM 実行時にエンコーディングが不一致になるという問題が発生し、変更も容易です。

解決:

Linux環境でUTF-8エンコーディングを使用する場合、LinuxはデフォルトでUTF-8を使用するため、変更する必要はありません。

warパッケージはTomcatにデプロイされます

JVMエンコーディングを変更する

Linux環境

catalina.sh での設定

JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8"

Windows 環境でのデフォルトのエンコード形式は GBK であるため、Tomcat の実行時にエンコード形式を変更する必要があります。

Windows環境

catalina.bat での設定

set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8

jar パッケージのデプロイメントの場合は、起動コマンドに jvm パラメータを追加するだけで済みます。

JAR パッケージの展開

起動コマンドにJVMパラメータを追加する

java -Dfile.encoding=UTF-8 -jar xxx.jar

要約する

上記は、Tomcat 実行時の JVM エンコーディングの問題を修正するための編集者による紹介です。皆様のお役に立てれば幸いです。

以下もご興味があるかもしれません:
  • JavaメモリモデルとJVMランタイムデータ領域の違いの詳細な説明
  • JVMランタイムデータ領域の原則の分析
  • JVM: 後期(実行時)最適化の詳細な理解
  • Java仮想マシン(JVM)ランタイムの詳細な説明
  • JVM ランタイム メモリ使用量監視の詳細な説明
  • JVM コアチュートリアル: JVM 操作とクラスロードの全プロセスの詳細な説明
  • IntelliJ IDEA で JVM 実行パラメータを設定する方法
  • JVM実行時のデータ領域分割の原理の詳細な説明

<<:  WeChatアプレットで計算機機能を実装する

>>:  MySQL クラスター化インデックスのページ分割原理の分析例

推薦する

Linux で FTP イメージ サーバーをインストールして展開する方法

Linux で FTP サーバーを設定するためのチュートリアルを参照してください https://w...

URL を入力すると、バックグラウンドでは具体的に何が起こるのでしょうか?

ソフトウェア開発者は、ネットワーク アプリケーションがどのように動作するかを階層的に完全に理解してい...

Dockerの急速な拡張の高度な方法

1. コマンド方式作成された Swarm クラスターで nginx サービスを実行し、--repli...

Xftp のダウンロードとインストールのチュートリアル (グラフィック チュートリアル)

Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...

CSS3を使用してテキストの垂直配置を実現する方法

最近のプロジェクトでは、テキストを垂直に揃えたいと考え、CSS の writing-mode プロパ...

CSS の position 属性の値に関する研究 (概要)

CSS の位​​置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...

Nginx をベースに特定の IP への短期アクセス数を制限する

特定の期間内に特定の IP へのアクセス回数を制限する方法は、特に悪意のある DDOS 攻撃に直面し...

LinuxでRPMを使用してmysql5.7.17をインストールする

LinuxでのMySQL5.7 rpmのインストール方法を参考までに記録します。具体的な内容は以下の...

CentOS8でyumソースを変更した後にウェアハウスキャッシュの同期に失敗する問題の詳細な説明

問題の原因: 最初は CentOS 8 のデフォルトの yum ソースを正常に使用できますが、次のコ...

React antd タブの切り替えによりサブコンポーネントが繰り返し更新される

説明する: Tabs コンポーネントが切り替わると、TabPane に含まれる同じサブコンポーネント...

VUEユニアプリ開発環境についての簡単な説明

目次1. HBuilderXビジュアルインターフェースを通じて2. vue-cliコマンドで実行する...

Jenkins統合Dockerプラグインの問題を解決するいくつかの方法

目次背景質問1エラー 2エラー 3エラー4要約する背景テスト環境では、docker プラグインを統合...

Linux でテキストから改行文字を削除する方法

復帰文字 ( Ctrl+M ) に不安を感じても心配しないでください。それらを排除する簡単な方法がい...

Linux での Apache サービスの展開と構成

目次1 Apacheの役割2 Apacheのインストール3. Apacheを有効にする4 Apach...

Nginx のアンチホットリンクを設定する方法

実験環境• 最小限のインストール済みの CentOS 7.3 仮想マシン• 構成: 1 コア/512...