環境は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;
}
状況がよく分かりませんが、化けているコードの感じから、ソースコードの文字列定数をシフトJISで書いていませんか? このため、文字化けが起きているのではないでしょうか。
vim の文字コードは set encoding で変更できます。
設定ファイル "/.vimrc" に
set encoding=sjis
としてください。
ただ、CentOS 用のプログラムをつくるのであれば、CentOS のデフォルト文字コードは UTF-8 なので、
set encoding=utf-8
として、ソースコードも UTF-8 に直した方がいいと思います。
状況がよく分かりませんが、化けているコードの感じから、ソースコードの文字列定数をシフトJISで書いていませんか? このため、文字化けが起きているのではないでしょうか。
vim の文字コードは set encoding で変更できます。
設定ファイル "/.vimrc" に
set encoding=sjis
としてください。
ただ、CentOS 用のプログラムをつくるのであれば、CentOS のデフォルト文字コードは UTF-8 なので、
set encoding=utf-8
として、ソースコードも UTF-8 に直した方がいいと思います。
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などに変えると表示できると思います。
コメント(1件)