質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

6回答

10710閲覧

EUCの文字コードのファイル名のファイルを作る方法

toroleaman

総合スコア95

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2015/02/04 15:03

Linuxサーバ上に
EUC、SJISの文字コードで作られたファイル名のファイルを作りたいのですが、
出来るのでしょうか。

TeraTermで接続して、端末の設定で受信、送信の文字コードを変更して、

lang

1touch ほげほげ

と打つと
ファイル名が「????」と文字化けしてしまいます。

やりたいことは、EUCやSJISでの日本語のファイル名のファイルを作りたいのですが、
出来るのでしょうか。

Windows上でファイルを作ってもWinSCPやPuttyなどでファイル転送すると
ファイル名の文字コードが変わってしまうという話をきいたので、
Linuxサーバ上で作成したいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

ファイル名の文字コードを変更する comvmv コマンドはどうでしょう。
コマンドの使い方はmanpageを参照してください。

投稿2015/02/05 04:37

yourill

総合スコア73

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「EUCやSJISでの日本語のファイル名のファイルを作りたい」とのことですが、仮にそれがうまくいったところで、複数の文字コードのファイルが混在してしまうと後々いろいろと不幸になりそうです。ファイル名をどう扱うかは(Linux上の)各アプリ次第ですし、それらのファイル名をどう人間に見せるかは、端末側の設定もからんできます。

「EUCやSJISでの日本語のファイル名のファイルを作って」から最終的に何をやりたいのかを書かれると、より実践的な回答が得られるかもしれません。たとえば「古いファイルサーバ上にある既存の複数ファイルについて、一括でファイル名の文字コード変換をしたい」であれば、SMBCHARTOOLあたりでできそうです。

投稿2015/02/05 03:57

hotta

総合スコア1613

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんな感じで一時的にサーバの文字コードを変更してみてはどうでしょうか?

export LANG=ja_JP.SJIS
export LANG=ja_JP.eucJP
export LANG=ja_JP.UTF-8

Teratermでログイン後設定したい文字コードを設定して、Exitでログアウトすれば元の文字コードに戻りますので。。。

一時的な対応であれば、これで十分かと思いますが。。。

投稿2015/02/07 05:10

takayukiinaba

総合スコア1158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

euc-jpは問題ないと思います。
Teratermをeuc-jpに設定して、

lang

1LC_ALL=ja_JP.euc-jp ls

で表示できるはず。

Shift_JISは、まず、

lang

1locale -a | grep ja

で、Shift_JISのロケールがあるかどうか確認。あれば、上記と同様。

無い場合は、ロケールの追加が必要です。/usr/share/i18n/charmaps/SHIFT_JIS.gzというファイル(OSによってファイル名が違うかも)があることを確認して、rootで、

lang

1localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.sjis

最後のファイル名は出力ファイルで、ファイル名がロケール名になるようです。
ロケールが追加できたことを確認して、TeratermをShift_JISに設定し、

lang

1LC_ALL=ja_JP.sjis ls

で表示できるはず。

複数の漢字コードを使い分けるなら、Teratermインストールの時に、TTXKcodeChangeもチェックを入れてインストールしておくと、サーバー側からエスケープシーケンスを送ることでTeraterm側の漢字設定を変更することが出来るので、便利かも知れません。

lang

1#!/bin/sh 2# sjisモードに切り替えて ls 3echo -en "\e]5963;kr=sjis;kt=sjis\a" 4LC_ALL=ja_JP.sjis /bin/ls "$@" 5sleep 1 #ちょっと待たないと駄目みたい 6echo -en "\e]5963;kr=utf8m;kt=utf8\a"

参考:TTXKcodeChange/ReadMe-ja.txt

投稿2015/02/05 02:22

otn

総合スコア84533

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

端末をUTF-8のままでEUCのファイルを作成したい場合はnkfなどで変換すると良いと思います。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230849/

投稿2015/02/04 23:27

naga3

総合スコア1293

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hotta

2015/02/05 03:38

nkfでファイルの中身をEUCに変換できますが、ファイル名を変換するのはちょっと難しいのでは?
naga3

2015/02/05 03:40

ファイルの中身だと思ってました…勘違いスミマセン。
guest

0

ツッコミたいところがいくつかありますが、
おそらくTeraTermの文字コードの設定がされていないために化けているのだと
思います。
http://www.j-oosk.com/teraterm/configuration/563/

投稿2015/02/04 16:37

munyaX

総合スコア783

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toroleaman

2015/02/04 22:41

ということは、EUCの文字コードのファイル名を作りたい場合は、 サーバ側を変えれば、作れるし、SJIS、UTF-8も作成が可能ということですね。 TeraTerm側の設定をUTF-8にしたら、正しく表示されましたが、 TeraTerm側の設定をEUCにしたら、正しく表示されません。 その場合は、サーバ側の設定をEUCにすれば、 EUCのファイル名が作成されるということですね。 試してみます。ありがとうございます。 EUCのファイル名のファイルをTeraTermで見て文字化けするのは、 問題ないのですが、純粋にEUCのファイル名のファイルを作りたいのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問