docker環境でjavaのgetBytes()を使った際に困った時の対処法
javaのソースコード内でgetBytes()を使ってバイト化した際に、上手く変換出来ないという事象が発生して困ってしまったことがあります。
原因は、Javaの日本語ロケールが登録されていないことだったようです。
以下、対象のdockerfileに追記することで解決するかと思います。
(もしかしたらENVの設定いらないかも。)
【dockerfile】
RUN apt-get -y install locales locales-all RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 ENV LANG="ja_JP.UTF-8" \ LANGUAGE="ja_JP:ja" \ LC_ALL="ja_JP.UTF-8"
※上記、apt-get
を使っているが、最近ではapt
を使う方が推奨されているらしい。
参考
「ロケール環境変数」の種類と優先順位まとめ【LC_ALL・LC_*・LANG・LANGUAGE】 | LFI
Dockerコンテナ上でJavaプログラムを動かすときにLANG環境変数を設定すると日本語のファイル名が文字化けする問題 - Qiita