なんか文字化けした
#include <stdio.h>
int main(void) {
"てすとだよ\n");
printf(
return 0;
}
PS C:\> gcc .\test001.c -o .\test001.exe
PS C:\> .\test001.exe
縺ヲ縺吶→縺繧・
当時の条件
- プログラムの文字コードがUTF-8だった。
- プログラムの改行コードがLFだった。
- PowerShellを使用していた。
原因
- PowerShellのデフォルト文字コードがUS-ASCIIだったから。
解決策
- プログラムの文字コードをShift_JISに変更する。
- gccのオプションを追加する。12 Invocation
PS C:\> gcc .\test001.c -o .\test001.exe -fexec-charset='cp932'
- 別のコマンドラインを使用する。
- 特にcmdであれば以下のコマンドを打つことによりコマンドラインの文字コードをUTF-8に変更できる。
chcp 65001
- PowerShellの文字コードをUTF-8に変更する。(ベータを含むので余りおすすめできない)
- 以下のコマンドを打つ。about_Character_Encoding
PS C:\> $OutputEncoding.encodingName US-ASCII
PS C:\> $OutputEncoding = [System.Text.Encoding]::UTF8 PS C:\> $OutputEncoding.encodingName Unicode (UTF-8)
- コントロールパネル
- 地域
- 管理タブ
- システムロケールの変更
- ベータ:ワールドワイド言語サポートでUnicode UTF-8を使用にチェック