UNIXな生活
更新:2004/7/8  
Linuxな生活  FreeBSDな生活
 Solarisな生活
 JAVAな生活
 Practical use
 掲示版
Debin Sarge をUTF-8環境で利用する

最近は、FedoraやSUSEでUTF-8をシステムのデフォルトロケールで利用して来てます。
そこで、DebianもUTF-8環境に変更してみました。

 1.システムのロケールを変更する。
Debianには、デフォルトで"ja_JP.eucJP"のロケールしか作成されていません。そこで、"UTF-8"(ja_JP.UTF-8)のロケールを作成します。
#dpkg-reconfigure locales
で、"ja_JP.UTF-8"ロケールを作成します。デフォルトロケールの選択も"ja_JP.UTF-8"に。

 2.ログイン時のロケールと基本アプリの設定
ログイン時に読み込むファイルに、"LANG=ja_JP.eucJP"って設定してある場所があれば、"LANG=ja_JP.UFT8"に変更します。
.xsession、.gnomerc、.bashrc、.bash_profile辺りをチェックしてください。

次に、アプリ関係です。大まかには以下の事をしておきます。
vi(vim)でのUTF-8対応
emacsでのUTF-8対応
lessの変わりにlv
ここを参考にUTF-8文字コードファイルの扱い方Tips

 3.Gtkアプリの文字化け対応
Gtkアプリの文字化けが発生します。これは、Gtkの設定でUTF-8を利用した場合には"ISO10646-1"を利用するようになっているためです。
ここでは、この改善を行います。

 /etc/gtk/gtkrc.ja.utf-8を作成
まず、UTF-8の場合に利用するフォントを設定します。これには、/etc/gtk/gtkrc.ja.utf-8ファイルを以下の内容で作成します。
style "gtk-default-ja-utf8" {
  fontset = "-adobe-helvetica-medium-r-normal--14-100-100-100-p-76-iso8859-1,\
	-ricoh-ms mincho-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0,\
	-misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0,\
	*-r-*"
}
class "GtkWidget" style "gtk-default-ja-utf8"

 XLC_LOCALEの設定
XLC_LOCALEの設定を変更し、ISO10646-1の優先度を下げます。
そのために、"/usr/X11R6/lib/X11/locale/ja_JP.UTF-8/XLC_LOCALE"ファイルを以下の内容に変更します。
これで、Gtkアプリの文字化けも改善されます。
これは、Sargeリリース時には変更してほしいいんですが、どんなもんなんでしょう、、。
# 
# 	XLC_FONTSET category
# 
XLC_FONTSET

on_demand_loading	True

object_name		generic

# We leave the legacy encodings in for the moment, because we don't
# have that many ISO10646 fonts yet.
# fs0 class (7 bit ASCII)
fs0 {
  charset {
    name  ISO8859-1:GL
  }
  font  {
    primary   ISO8859-1:GL
    vertical_rotate all
  }
}
# fs1 class (ISO8859 families)
fs1 {
  charset {
    name  ISO8859-1:GR
  }
  font  {
    primary ISO8859-1:GR
  }
}

# ISO10646-1 is put after iso8859-1 to make usually better-looking
# iso8859-x fonts are picked up before iso10646-1 fonts.
# Moreover, some iso10646-1 fonts don't have any glyph at all
# in ISO8859-X ranges.

# fs2 class (Kanji)
fs2	{
	charset	{
		name	JISX0208.1983-0:GL
	}
	font	{
		primary	JISX0208.1983-0:GL
	}
}

# fs3 class (Korean Character)
fs3	{
	charset	{
		name	KSC5601.1987-0:GL
	}
	font	{
		primary	KSC5601.1987-0:GL
	}
}

# fs4 class (Chinese Han Character)
fs4	{
	charset	{
		name	GB2312.1980-0:GL
	}
	font	{
		primary	GB2312.1980-0:GL
	}
}
# fs5 class (Half Kana)
fs5	{
	charset	{
		name	JISX0201.1976-0:GR
	}
	font	{
		primary		JISX0201.1976-0:GR
		vertical_rotate	all
	}
}
# fs6 class
fs6	{
	charset {
		name	ISO10646-1
	}
	font {
		primary ISO10646-1
	}
}
END XLC_FONTSET

# 
# 	XLC_XLOCALE category
# 
XLC_XLOCALE

encoding_name		UTF-8
mb_cur_max		6
state_depend_encoding	False

# cs0 class
cs0	{
 side	 GL
 length 1
 ct_encoding	ISO8859-1:GL
}
# cs1 class
cs1	{
 side	  GR
 length  2
 ct_encoding JISX0208.1983-0:GL;JISX0208.1983-0:GR;JISX0208.1983-1:GL;JISX0208.1983-1:GR

}
# cs2 class
cs2   {
 side    GL
 length  2
 ct_encoding KSC5601.1987-0:GL;KSC5601.1987-0:GR;KSC5601.1987-1:GL;KSC5601.1987-1:GR

}
# cs3 class
cs3     {
 side   GR
 length  2
 ct_encoding  GB2312.1980-0:GL;GB2312.1980-0:GR
}
# cs4 class
cs4	{
 side		GR
 length	1
 ct_encoding  JISX0201.1976-0:GR
}
# cs5 class
cs5	{
 side	none
 ct_encoding  ISO10646-1
}
# cs6 class
cs6	{
 side	  GR:Default
 length  1
 ct_encoding  ISO8859-1:GR
}

END XLC_XLOCALE

Producted by Tomoya Sakurai