vi(vim)エディタでCファイルが文字化けしてしまいます。catコマンドではしないのですがなぜでしょうか?また、対策法をを教えてください。

環境はCentOS5.2です。

以下ログです。
[yukihito@yukihito study_c]$ ls -lF
合計 24
-rw-rw-r-- 1 yukihito yukihito 104 12月 21 16:58 ex01-5-2.c
-rw-rw-r-- 1 yukihito yukihito 270 12月 2 15:46 ex01-7-2.c
-rw-rw-r-- 1 yukihito yukihito 224 12月 2 17:51 ex01-8-2.c
[yukihito@yukihito study_c]$ cat ex01-8-2.c
#include <stdio.h>

float convert(void);

int main(void)
{
printf("%f ", convert());

return 0;
}

float convert()
{
float num;

printf("");
scanf("%f", &num);

return num / 2;
}
[yukihito@yukihito study_c]$ vi ex01-8-2.c
#include <stdio.h>

float convert(void);

int main(void)
{
printf("%f <83>|<83><93><83>h<82>Å<82>·", convert());

return 0;
}

float convert()
{
float num;

printf("<89>½<83>h<83><8b><82>©<93>ü<97>Í<82>µ<82>Ä<82>­<82>¾<82>³<82>¢<81>F");
scanf("%f", &num);

return num / 2;
}

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/12/21 18:43:35
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント45pt

状況がよく分かりませんが、化けているコードの感じから、ソースコードの文字列定数をシフトJISで書いていませんか? このため、文字化けが起きているのではないでしょうか。


vim の文字コードは set encoding で変更できます。

設定ファイル "/.vimrc" に

set encoding=sjis

としてください。


ただ、CentOS 用のプログラムをつくるのであれば、CentOS のデフォルト文字コードは UTF-8 なので、

set encoding=utf-8

として、ソースコードも UTF-8 に直した方がいいと思います。

その他の回答1件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633ここでベストアンサー

ポイント45pt

状況がよく分かりませんが、化けているコードの感じから、ソースコードの文字列定数をシフトJISで書いていませんか? このため、文字化けが起きているのではないでしょうか。


vim の文字コードは set encoding で変更できます。

設定ファイル "/.vimrc" に

set encoding=sjis

としてください。


ただ、CentOS 用のプログラムをつくるのであれば、CentOS のデフォルト文字コードは UTF-8 なので、

set encoding=utf-8

として、ソースコードも UTF-8 に直した方がいいと思います。

id:hashizo No.2

回答回数9ベストアンサー獲得回数0

ポイント25pt

viについては、pahooさんがコメントされているので、catについて。

catでうまく表示できないのは、環境変数が設定されていないためだと思います。

ファイル自体はUTF8のように思います。

環境変数を設定の後、catしてみてください。

多分、日本語が表示されるはずです。

○言語の確認方法

echo $LANG

○sh/bsh系の場合、UTF8にする方法

LANG=ja_JP.UTF8

export LANG

○csh系の場合、UTF8にする方法

setenv LANG ja_JP.UTF8

まだ、文字化けする場合、ファイルがSJISかEUCだと思います。

ja_JP.SJIS、ja_JP.EUCなどに変えると表示できると思います。

http://www.nina.jp/server/redhat/fedora/utf-8.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません