6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOSAdvent Calendar 2017

Day 13

事情がありCentOSの文字コードをEUC-JPにしてみたはなし。

Last updated at Posted at 2017-12-12

#文字コード
最近のLinux Distributionはほとんど文字コードがUTF-8になってますが、ちょと前まではEUC-JPが多かったです。 Sun Solarisでも SunOS4.Xの頃はEUC-JPがメインでしたね。

それでなんですが、一部都合でEUC-JPの環境が残ってます。それようのサーバを作る必要がありまして、CentOS7で設定してみました。

このサーバで提供しているのはsshでのログインとsamba です。(仮想環境なんでGUIは試してませんが、おそらく文字化けしてダメじゃないかな。。)

#文字コードの切り替え

参考文献
http://zero-config.com/centos/changelocale-002.html

上記文献を参考にしました。

現在のロケール。

$ localectl status
   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: jp
      X11 Layout: jp

ロケール変更(root作業)

$ localectl set-locale LANG=ja_JP.eucjp

変更されたかの確認

$ localectl status
   System Locale: LANG=ja_JP.eucjp
       VC Keymap: jp
      X11 Layout: jp
$ more /etc/locale.conf
LANG=ja_JP.eucjp

以上で変更できます。

#だがしかし
UTF-8の環境から上記サーバにsshでログインしてみてください。文字コードがUTF-8になってます。

$ echo $LANG
ja_JP.UTF-8

なんでや!

原因追及に時間がかかりましたが、/etc/ssh/sshd_configの設定で環境変数LANGなどが引き継がれていました。

EUC-JPのサーバで以下の修正を行ってください。(関係ありそうなのをすべて止めてます。一つ一つ確認していません)

/etc/ssh/sshd_config
# 以下の行をすべてコメントに変更
#AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
#AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
#AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

sshdの再起動。

$ /sbin/service sshd restart

以上で引き継がれなくなると思います。

Emacsの設定

EUC-JPに文字コードを変更します。

~./emacs
; 加筆
(set-language-environment "Japanese")
(set-terminal-coding-system 'euc-japan)
(set-keyboard-coding-system 'euc-japan)
(set-buffer-file-coding-system 'euc-japan)
(setq default-buffer-file-coding-system 'euc-japan)
(prefer-coding-system 'euc-japan)
(set-default-coding-systems 'euc-japan)
(setq file-name-coding-system 'euc-japan)

これでデフォルトで文字コードがEUC-JPになると思います。

Sambaの設定

文字コードを指定してください。この文字コードの指定はsambaが作成するファイル名のみに影響します。Sambaで共有するファイルの本文は影響しません。

/etc/samba/smb.conf

[global]
        ....
        unix charset = EUCJP-MS
        ....

以上で、とりあえずEUC-JPで動いていますが、なんか不具合があれば加筆します(^_^;

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?