teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

修正

2017/01/11 13:35

投稿

退会済みユーザー
answer CHANGED
@@ -30,7 +30,10 @@
30
30
  になります。
31
31
  encode("UTF-8")という風に書いていると、プログラムの文字コードを変更したときに
32
32
  「encodeの括弧の中身を全て変更しないといけない!!」ということになるかもしれません。
33
- KSwordOfHasteがさているように、プログラムの文字コードでencodeするように
33
+ KSwordOfHasteがているように、プログラムの文字コードでencodeするように
34
34
  すれば、自動的にencodeの括弧の中身も変化するようになるので
35
35
  プログラムの文字コードを変えても括弧の中身を書き換える必要がありません。
36
- 文字コードを変更するつもりがない場合はencode("UTF-8")でも大丈夫です。
36
+ 文字コードを変更するつもりがない場合はencode("UTF-8")でも大丈夫です。
37
+
38
+ 参考
39
+ [Encoding](https://ruby-doc.org/core-2.2.0/Encoding.html)

4

修正

2017/01/11 13:35

投稿

退会済みユーザー
answer CHANGED
@@ -28,3 +28,9 @@
28
28
  になります。
29
29
  「#encoding : windows-31J」とすれば「```__ENCODING__```」は「Window-31J」
30
30
  になります。
31
+ encode("UTF-8")という風に書いていると、プログラムの文字コードを変更したときに
32
+ 「encodeの括弧の中身を全て変更しないといけない!!」ということになるかもしれません。
33
+ KSwordOfHasteがされているように、プログラムの文字コードでencodeするように
34
+ すれば、自動的にencodeの括弧の中身も変化するようになるので
35
+ プログラムの文字コードを変えても括弧の中身を書き換える必要がありません。
36
+ 文字コードを変更するつもりがない場合はencode("UTF-8")でも大丈夫です。

3

補足

2017/01/11 13:33

投稿

退会済みユーザー
answer CHANGED
@@ -15,4 +15,16 @@
15
15
  デフォルトの文字コードは「UTF-8」らしいので、その教本の作者様が
16
16
  Linuxを使用されていてプログラムの文字コードも「UTF-8」の場合は
17
17
  .encode(文字コード)で文字コードを「UTF-8」にそろえる必要が
18
- ありません。
18
+ ありません。
19
+
20
+ 追記
21
+ ```Ruby
22
+ #encoding : utf-8
23
+ puts "あなたが入力した文字は「#{gets.chomp.encode(__ENCODING__)}」ですね?"
24
+ ```
25
+ KSwordOfHaste様とたぶん同じ結果になると思います。
26
+ 「```__ENCODING__```」はこのプログラムの文字コードを表します。
27
+ この場合は「#encoding : utf-8」としているので「```__ENCODING__```」は「UTF-8」
28
+ になります。
29
+ 「#encoding : windows-31J」とすれば「```__ENCODING__```」は「Window-31J」
30
+ になります。

2

修正

2017/01/11 13:25

投稿

退会済みユーザー
answer CHANGED
@@ -9,7 +9,7 @@
9
9
  ここで「UTF-8」と「Windows-31J(=Shift-JIS)」という異なった
10
10
  文字コードの文字列が連結されてエラーが発生します。
11
11
  .encode(文字コード)をすることで文字コードを変更することが可能で
12
- コマンドプロンプトから入力される文字列の文字コードをUTF-8にして
12
+ コマンドプロンプトから入力される文字列の文字コードをUTF-8にして
13
13
  文字コードをそろえることで普通に動くようになります。
14
14
  間違っていたら申し訳ないですがLinuxのコマンドプロンプトの
15
15
  デフォルトの文字コードは「UTF-8」らしいので、その教本の作者様が

1

修正

2017/01/11 11:52

投稿

退会済みユーザー
answer CHANGED
@@ -1,7 +1,7 @@
1
1
  Rubyでは異なった文字コードの文字列を連結することができません。
2
2
  Atomをデフォルトの状態で使っているということなので
3
3
  Atomで書いたプログラムの文字コードは「UTF-8」になります。
4
- もし質問者様がWindowsを使われている場合は、コマンドプロンプトの
4
+ もし質問者様がWindowsを使われている場合は、コマンドプロンプトの
5
5
  デフォルトの文字コードは「Shift-JIS」なのでコマンドプロンプトから
6
6
  入力した文字列の文字コードは「Shift-JIS」になります。
7
7
  上のプログラムは出力するときに「プログラムに書かれた文字列」を