回答編集履歴

6

元に戻すって何だ?

2019/11/03 14:24

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
 
78
78
 
79
- ここまでちゃんと読んでいればわかるはずです。ソースコードの文字コードとコンパイルによって出力されたバイナリに埋め込まれた文字コードは関係が無いと言うことです。それぞれ別々に管理されており、環境のデフォルトまたはコンパイラオプションによって決定されます。コンパイルの文字コードは、GCCであれば`-fexec-charset`で指定可能です。このオプションはそれぞれバラバラに設定でき、文字コードの変換が行われることになります。
79
+ ここまでちゃんと読んでいればわかるはずです。ソースコードの文字コードとコンパイルによって出力されたバイナリに埋め込まれた文字コードは関係が無いと言うことです。それぞれ別々に管理されており、環境のデフォルトまたはコンパイラオプションによって決定されます。コンパイルの文字コードは、GCCであれば`-fexec-charset`で指定可能です。このオプションはそれぞれバラバラに設定でき、文字コードの変換が行われることになります。
80
80
 
81
81
 
82
82
 
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- す方法は次の二つです。
87
+ 文字化けしないようにす方法は次の二つです。
88
88
 
89
89
 
90
90
 

5

リダイレクトだと誤解を与えそうなので

2019/11/03 14:24

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  ```
68
68
 
69
- g++ -finput-charset=cp932 <<ソースコードファイル名>>
69
+ g++ -finput-charset=cp932 {{ソースコードファイル名}}
70
70
 
71
71
  ```
72
72
 

4

異ならない場合も変換しているっぽい

2019/11/03 14:21

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
 
78
78
 
79
- ここまでちゃんと読んでいればわかるはずです。ソースコードの文字コードとコンパイルによって出力されたバイナリに埋め込まれた文字コードは関係が無いと言うことです。それぞれ別々に管理されており、環境のデフォルトまたはコンパイラオプションによって決定されます。コンパイル語の文字コードは、GCCであれば`-fexec-charset`で指定可能です。このオプションはそれぞれバラバラに設定でき、もし異なる文字コードであれば、文字コードの変換が行われることになります。
79
+ ここまでちゃんと読んでいればわかるはずです。ソースコードの文字コードとコンパイルによって出力されたバイナリに埋め込まれた文字コードは関係が無いと言うことです。それぞれ別々に管理されており、環境のデフォルトまたはコンパイラオプションによって決定されます。コンパイル語の文字コードは、GCCであれば`-fexec-charset`で指定可能です。このオプションはそれぞれバラバラに設定でき、文字コードの変換が行われることになります。
80
80
 
81
81
 
82
82
 

3

サンプルはShift_JISで保存してね

2019/11/03 06:40

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- ちょっとだけ変えたしたのコードを同じようにコンパイルしようとしてみてください。
29
+ ちょっとだけ変えたのコードを同じようにShift_JISで保存してコンパイルしようとしてみてください。
30
30
 
31
31
 
32
32
 

2

chcpをちょっと足す

2019/11/03 06:37

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- おっとここで、先に進む前にターミナルの話をしなければなりません。ConEmuとかを使っていない場合、WSLのターミナル画面はコマンドプロンプトやPowerShellと同じWindowsのコンソール機能を使っています。このコンソール自体は複数の文字コードに対応しています。ウィンドウのバーを右クリックして「プロパティ」を開いてくみてください。「オプション」タグに「現在のコードページ」の所に現在のコードページ(Windowsで文字コードを識別するための番号)が表示されていることでしょう。日本語環境であれば、`932 (ANSI/OEM - 日本語 Shift-JIS)`か`65001 (UTF-8)`の何れかです。Windows標準のコマンドプロンプトやPowerShellは932になりますが、WSL上のUbuntuを立ち上げたときは自動的に65001に切り替わります。これは932なコマンドプロンプト上で`bash`とした場合も同様です。先程、WSL上のUbuntuはUTF-8になっていると言いましたが、このコンソール機能でもUTF-8となっているため、日本語のメッセージなどが文字化けせずに表示されるようになっています。
21
+ おっとここで、先に進む前にターミナルの話をしなければなりません。ConEmuとかを使っていない場合、WSLのターミナル画面はコマンドプロンプトやPowerShellと同じWindowsのコンソール機能を使っています。このコンソール自体は複数の文字コードに対応しています。ウィンドウのバーを右クリックして「プロパティ」を開いてくみてください。「オプション」タグに「現在のコードページ」の所に現在のコードページ(Windowsで文字コードを識別するための番号)が表示されていることでしょう。日本語環境であれば、`932 (ANSI/OEM - 日本語 Shift-JIS)`か`65001 (UTF-8)`の何れかです。Windows標準のコマンドプロンプトやPowerShellは932になります(chcpコマンドで切り替え可能)が、WSL上のUbuntuを立ち上げたときは自動的に65001に切り替わります。これは932なコマンドプロンプト上で`bash`とした場合も同様です。先程、WSL上のUbuntuはUTF-8になっていると言いましたが、このコンソール機能でもUTF-8となっているため、日本語のメッセージなどが文字化けせずに表示されるようになっています。
22
22
 
23
23
 
24
24
 

1

ちょっとだけ変えた

2019/11/03 06:36

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- おっとここで、先に進む前にターミナルの話をしなければなりません。ConEmuとかを使っていない場合、WSLのターミナル画面はコマンドプロンプトやPowerShellと同じコンソール機能を使っています。このコンソール自体は複数の文字コードに対応しています。ウィンドウのバーを右クリックして「プロパティ」を開いてくみてください。「オプション」タグに「現在のコードページ」の所に現在のコードページ(Windowsで文字コードを識別するための番号)が表示されていることでしょう。日本語環境であれば、`932 (ANSI/OEM - 日本語 Shift-JIS)`か`65001 (UTF-8)`の何れかです。Windows標準のコマンドプロンプトやPowerShellは932になりますが、WSL上のUbuntuを立ち上げたときは自動的に65001に切り替わります。これは932なコマンドプロンプト上で`bash`とした場合も同様です。先程、WSL上のUbuntuはUTF-8になっていると言いましたが、このコンソール機能でもUTF-8となっているため、日本語のメッセージなどが文字化けせずに表示されるようになっています。
21
+ おっとここで、先に進む前にターミナルの話をしなければなりません。ConEmuとかを使っていない場合、WSLのターミナル画面はコマンドプロンプトやPowerShellと同じWindowsのコンソール機能を使っています。このコンソール自体は複数の文字コードに対応しています。ウィンドウのバーを右クリックして「プロパティ」を開いてくみてください。「オプション」タグに「現在のコードページ」の所に現在のコードページ(Windowsで文字コードを識別するための番号)が表示されていることでしょう。日本語環境であれば、`932 (ANSI/OEM - 日本語 Shift-JIS)`か`65001 (UTF-8)`の何れかです。Windows標準のコマンドプロンプトやPowerShellは932になりますが、WSL上のUbuntuを立ち上げたときは自動的に65001に切り替わります。これは932なコマンドプロンプト上で`bash`とした場合も同様です。先程、WSL上のUbuntuはUTF-8になっていると言いましたが、このコンソール機能でもUTF-8となっているため、日本語のメッセージなどが文字化けせずに表示されるようになっています。
22
22
 
23
23
 
24
24