LoginSignup
25
12

More than 3 years have passed since last update.

【解説付き】IntelliJ IDEAでpropertiesファイルの文字化け表示を直す方法(Mac)

Posted at

propertiesファイルを開いたら、日本語が文字化けしていた。

IntelliJ IDEAで開くと
スクリーンショット 2019-05-30 11.06.23.png
のように、propertiesファイルが文字化けていた。

手順

メニューバーでInteliJ IDEAタブから、Preferencesをクリック

スクリーンショット 2019-05-30 11.06.45.png

File encodingsで Transparent native-to-ascii conversionのチェックボックスをクリック

スクリーンショット 2019-05-30 11.06.56.png
OKを押すと、エディタ上でも文字化けが解消されている

解説

propertiesファイルがなぜ文字化けするのか

文字コードがASCIIコードに変換されて保存されているため。
ASCIIコードは日本語は含まれないので、UTF-8等で入力したものを
native2ascii
というツールを使ってASCIIコードに変換して保存されている。
文字コードが違うのではなく、変換された文字列なので、どの文字コードに設定しようが日本語で正しく表示することは出来ない
表示するためにはnative2asciiで再変換する必要がある。(下の図を参照)

ASCIIとは

文字コードの一つ。
アルファベット、数字、記号、空白文字、制御文字が登録されている。
日本語は含まれていない。英語圏で生まれたことが一番の理由。

ASCIIは日本語含まれていないから文字化けしているの?

勘違いされがちだが、違う。
propertiesファイルに日本語を登録する際(UTF-8などで入力した場合)、
native2ascii
というJavaのツールでASCIIに変換して保存している。

native2asciiなんてコマンド普段叩いていないけど?

大抵はIDE(統合開発環境)が自動でやってくれている。
日本語で入力すると、ASCIIに変換されて保存されている。

設定を変えるとなぜ正しく表示できるようになるのか

native2asciiによる透過的な変換がされるようになるため

「Transparent native-to-ascii conversion」を有効にすると、Intelijがpropertiesファイルの操作時にnative2asciiを走らせ、UTF-8⇆ASCIIの変換を自動で行ってくれる。
intelji.ASCII.jpeg

propertiesファイルを入力、保存する場合

エディタ上では、デフォルトではUTF-8で表示、入力ができるようになっている。
このファイルを保存する場合、Intelijが自動的にnative2asciiを走らせ、ASCIIコードに変換して保存してくれる。

propertiesファイルを表示する場合

propertiesファイルをそのまま読み込むとASCIIコードのままのため文字化けしてしまうが、
Intelijが自動的にnative2asciiを走らせることでUTF-8に変換され表示される。

そもそもUTF-8でpropertiesファイルを管理したい

ASCIIコードで保存しなくてはならないのは、propertiesファイルを読み込むJava側の処理がASCIIコードであることを前提にしているからである。
読み込む側の処理を変更し、UTF-8で書かれたpropertiesファイルを読み込むようにすることもできる。
参考:Java のプロパティファイルは UTF-8 エンコーディングで記述したい

25
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
12