※ 2011/12/21 追記: はてなブックマークのコメントで教えてもらいましたが、~/.MacOSX/environment.plist を編集してHGENCODINGをutf8としてセットしログインし直すだけでOKでした。(PHPStorm 3.0 / Mac OSX 10.7.2で確認)以下の作業は不要です。
JetBrains社のPHP統合開発環境であるPHPStormは連携するVCSとして標準でmercurialが使えますが、Mac上で使用する場合標準の設定では日本語のコミットメッセージは文字化けします。これの回避方法がわかったので書きます。
環境
- Mac OSX 10.6.8
- PHPStorm 2.1.2
- 文字コード設定はutf-8
[注]
※1 WebStormはPHPStormのサブセットなので、本エントリの内容はWebStormでもそのまま適用されるはずです。また他のJetBrains製IDEもおそらく同じ方法が使えると思います。
※2 他のプラットフォーム・環境の方は自分の環境に置き換えて読んでください。
前提
既存のmercurialがそもそも正しく日本語コミットメッセージを扱えていることが必要です。つまりコマンドラインからhgコマンドを使って正しく日本語のコミットメッセージ正しく扱える必要があります。これについては
.bashrcなどに
export HGENCODING=utf-8
と記述し環境変数HGENCODINGを設定すれば大抵の場合OKのはずです。
設定
ポイントは
- HGENCODINGの値をPHPStormに認識させること。
- PHPStorm起動時にJVMの文字エンコーディングをutf-8にすること。
の2点です。
最初のポイントですが、実はPHPStormの設定を見ると”Settings > Version Control > VCSs > Mercurial”に”Run as “bash -c <path to hg>”というオプションがあり、
ここにチェックを入れれば.bashrcのHGENCODINGの値を取り込んでくれると期待して試したのですが、現行のPHPStormの場合文字化けが解消したように見えるもののペインが真っ白になったり全体の動作が遅くなるなど挙動不審になり使い物にならないのでこのオプションは使いません。その代わりにここ(IntelliJ+mercurialで日本語コミットログ | Ken’s evitation)にあるようにアプリをターミナルから起動するという方法を使います。ターミナルから
open /Applications/PhpStorm\ 2.1.2.app/
と実行して起動します。これで既存のコミットメッセージは文字化けせずに表示出来るようになる…のですが、新規のコミットメッセージに日本語が含まれていると怒られてコミットが失敗します。
JVM起動オプションの設定
そこで第2のポイントの設定を行います。NetBeansの設定編でも書きましたが、OSX10.6のJDKはデフォルトがShift_JISなのでJVMを起動する際オプションとして明示的に文字コードをutf-8にする必要があります。OSX版のPHPStormの場合その設定は
/Applications/PhpStorm 2.1.2.app/Contents
の中にあるInfo.plistを編集して行います。(編集前に念のためオリジナルのplistはリネームするなどしてバックアップしておきましょう。)
Info.plistを開いて下線部で示した部分を追加します。このとき既存のオプションとの間に半角スペースが必要です。
※OSX以外のプラットフォームを使用している場合はアプリケーション内のどこかに起動オプションを記述している.confファイルがあるはずのでそれを編集します。追加するオプションがNetBeansの場合とは微妙に違うので注意しましょう。
Info.plistの編集が終わったらターミナルから
open /Applications/PhpStorm\ 2.1.2.app/
としてPHPStormを起動します。以上で日本語のコミットメッセージの読み書きが正しく扱えるようになります。



