euc-jp 日本語ファイル名を utf8 日本語ファイル名に変換 (2009/04/23)
今までの日本語ファイル名は Linux 上では euc-jp を使うようにしていました.しかし,最近,gnome などのアプリケーションで utf8 日本語ファイル名を持つファイルが自動的に作り出され,これらが文字化けして表示されるような状況になっていました.これらの utf8 日本語ファイル名は,gnome-terminal 上で [TAB] でファイル名補完をしようとすると gnome-terminal 自体が落ちてしまう現象を引き起こしていた.
サーバの移行時に euc-jp 日本語ファイル名と utf8 日本語ファイル名が混在している状況を確認して,移行のついでに utf8 日本語ファイル名に統一することにしました.nkf などでファイル名の文字コード変換をしなければならないかと考えましたが,ネット検索すると convmv という便利なコマンドがありました.変換及びそれに付随する設定変更について報告します.
- convmv によるファイル名の文字コード変換
convmv で /home 以下の euc-jp 日本語名ファイルを utf8 日本語ファイル名に変換します.
# cd /home # convmv -r -f euc-jp -t utf8 * --notest
時間はかかりましたが,/home 以下の日本語ファイル名は utf8 になりました.
- マシンのデフォルトロケールの変更
研究室 Linux マシンのデフォルトロケール (locale) を ja_JP.EUC-JP から ja_JP.UTF-8 に変更します.コマンド
# dpkg-reconfigure locales
で,デフォルトロケールを ja_JP.UTF-8 にしました.また,/etc/fstab のマウントオプションで iocharset や nls を euc-jp にしていたところをiocharset=utf8 nls=utf8
としました. - ユーザの環境変数 LANG の変更
ユーザの環境変数 LANG を ja_JP.eucJP と設定していましたが,ja_JP.UTF-8 に変更しました.
- samba の日本語設定の変更
/etc/samba/smb.conf で
unix charset = EUCJP-MS display charset = EUCJP-MS
となっていたところをunix charset = UTF-8 display charset = UTF-8
に変更して samba デーモンの再起動をしました.# /etc/init.d/samba restart
Windows から samba サーバ上のファイルが文字化けせずに表示されるのを確認しました.
梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp Last modified: 2020/05/01 15:37