pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


Freemind 1.0.0 で日本語ファイル名を正しく扱えない問題の対策

MacOS X 上で Freemind を用いる場合に「日本語を含むファイルを開けない、保存できない」という問題が発生することがあります。おそらく、Java 7 との組み合わせで発生する症状です。

以下ではこの問題の解決方法を説明します。

  • 解決方法の基本

JavaアプリをGUIから起動する場合に、シェル変数 LANG にて、ja_JP.UTF-8 や en_US.UTF-8 など、UTF-8 エンコードを明示します。

ただし、通常のUNIX環境とは違って ~.profile 等に記述しても効果がありません。

  • OSバージョンごとの対処方法(10.7 Lion までのバージョン)

~/.MacOSX/environment.plist に以下の記述を行います。これは一般ユーザ権
限で可能です。




LANG
ja_JP.UTF-8


  • OSバージョンごとの対処方法(10.8 Mountain Lion 以降)

/etc/launchd.conf に、setenv LANG ja_JP.UTF-8 という内容を記述してください。管理者権限が必要なので、sudo 等で作業します。

  • 詳細説明

UNIX 向けのソフトウェアは、通常はシェル変数 LANG によってデフォルトの文字エンコードを決定します。これは Java でも同じです。

しかし、MacOS においてはデフォルトの状態で LANG が未定義です。唯一、「ターミナル.app」の実行時にだけ、システムの言語設定に相当する形で LANG がセットされています。

このため、GUI から起動するアプリで、LANG を前提に挙動を変えるソフトウェアは、LANG が未定義となることから、マルチランゲージの処理が(ユーザ目線で考えたときに)想定外の動作となります。