回答編集履歴
6
元に戻すって何だ?
test
CHANGED
@@ -76,7 +76,7 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
ここまでちゃんと読んでいればわかるはずです。ソースコードの文字コードとコンパイルによって出力されたバイナリに埋め込まれた文字コードは関係が無いと言うことです。それぞれ別々に管理されており、環境のデフォルトまたはコンパイラオプションによって決定されます。コンパイル
|
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
リダイレクトだと誤解を与えそうなので
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
異ならない場合も変換しているっぽい
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で保存してね
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
ちょっとだけ変えた
|
29
|
+
ちょっとだけ変えた下のコードを同じようにShift_JISで保存してコンパイルしようとしてみてください。
|
30
30
|
|
31
31
|
|
32
32
|
|
2
chcpをちょっと足す
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
ちょっとだけ変えた
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
おっとここで、先に進む前にターミナルの話をしなければなりません。ConEmuとかを使っていない場合、WSLのターミナル画面はコマンドプロンプトやPowerShellと同じ
|
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
|
|