euc-jp 日本語ファイル名を utf8 日本語ファイル名に変換 (2009/04/23)

今までの日本語ファイル名は Linux 上では euc-jp を使うようにしていました.しかし,最近,gnome などのアプリケーションで utf8 日本語ファイル名を持つファイルが自動的に作り出され,これらが文字化けして表示されるような状況になっていました.これらの utf8 日本語ファイル名は,gnome-terminal 上で [TAB] でファイル名補完をしようとすると gnome-terminal 自体が落ちてしまう現象を引き起こしていた.

サーバの移行時に euc-jp 日本語ファイル名と utf8 日本語ファイル名が混在している状況を確認して,移行のついでに utf8 日本語ファイル名に統一することにしました.nkf などでファイル名の文字コード変換をしなければならないかと考えましたが,ネット検索すると convmv という便利なコマンドがありました.変換及びそれに付随する設定変更について報告します.

  1. convmv によるファイル名の文字コード変換

    convmv で /home 以下の euc-jp 日本語名ファイルを utf8 日本語ファイル名に変換します.

    # cd /home
    # convmv -r -f euc-jp -t utf8 * --notest
    

    時間はかかりましたが,/home 以下の日本語ファイル名は utf8 になりました.

  2. マシンのデフォルトロケールの変更

    研究室 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
    
    としました.

  3. ユーザの環境変数 LANG の変更

    ユーザの環境変数 LANG を ja_JP.eucJP と設定していましたが,ja_JP.UTF-8 に変更しました.

  4. 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
Total Access Count