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

回答編集履歴

2

コード訂正

2017/01/11 11:39

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -13,6 +13,6 @@
13
13
  ```ruby
14
14
  scriptEncoding="このスクリプト".encoding
15
15
  ...
16
- b=gets.chomp.encode(scriptEncoding)
16
+ s=gets.chomp.encode(scriptEncoding)
17
- a+b
17
+ "漢字の文字列"+s
18
18
  ```

1

追記

2017/01/11 11:39

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -4,4 +4,15 @@
4
4
 
5
5
  [Encoding::CompatibilityErrorクラス ](https://docs.ruby-lang.org/ja/latest/class/Encoding=3a=3aCompatibilityError.html)
6
6
 
7
- jrubyの環境しかないのですがやってみるとencodingが異なってもASCII文字onlyの場合は連結できるようですが漢字などが含まれていると連結時にこのエラーになりました。
7
+ jrubyの環境しかないのですがやってみるとencodingが異なってもASCII文字onlyの場合は連結できるようですが漢字などが含まれていると連結時にこのエラーになりました。
8
+
9
+ ---
10
+ 追記:
11
+ ruby初心者なので何がよい方法かはわかりませんが、例えば文字をgetsで外部から入力させる場合は環境によってencodingが変わるため、安全に取り扱うためにスクリプト(あるいは希望する特定のencoding)に合わせてやるのがよいのではないかと思いました。
12
+
13
+ ```ruby
14
+ scriptEncoding="このスクリプト".encoding
15
+ ...
16
+ b=gets.chomp.encode(scriptEncoding)
17
+ a+b
18
+ ```