|
View:
New views
8 Messages
—
Rating Filter:
Alert me
|
|
|
[ruby-list:46469] encodingに関する問題?お世話になっています。アスカルです。
久保秋 真氏の作りながら学ぶRUBY入門という本を演習しています。 使っているエディターはTextWranglerです。 ex517.rbという演習は下記の通りです: #! ruby -Ks # -*- coding* Windows-31J -*- fruits_prices =[["apple", 200],["orange", 100],["melon", 600]] fruits_prices.each { |fp| puts "名前: #{fp[0]}、値段:#{fp[1]}円" } sum=0 fruits_prices.each {|fp| sum += fp[1]} puts "1個ずつ買うと全部で#{sum}円です。" 質問: 1)EncodingはJapanese-Shiftで実行されますが、日本語が文字化けする。UTF- 8にするとプラグラムが実行されず: /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char `\357' in expression /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char `\273' in expression /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char `\277' in expression というエラーが生じる 2)プラットフォーム関係なく共通なencodeの設定は可能でしょうか。 |
|
|
[ruby-list:46470] Re: encodingに関する問題?成瀬です。
askar wrote: > お世話になっています。アスカルです。 > > 久保秋 真氏の作りながら学ぶRUBY入門という本を演習しています。 > > 使っているエディターはTextWranglerです。 > > ex517.rbという演習は下記の通りです: > > #! ruby -Ks > # -*- coding* Windows-31J -*- > > fruits_prices =[["apple", 200],["orange", 100],["melon", 600]] > > fruits_prices.each { |fp| > puts "名前: #{fp[0]}、値段:#{fp[1]}円" > } > > sum=0 > fruits_prices.each {|fp| sum += fp[1]} > puts "1個ずつ買うと全部で#{sum}円です。" > > 質問: > 1)EncodingはJapanese-Shiftで実行されますが、日本語が文字化けする。 この手の問題の場合は毎回自分の環境を書くべきです。 幸い、直前のメールで Mac だということが分かっていますが。 で、Mac はコンソールのエンコーディングが UTF-8 になっているので、 -Ks やマジックコメントで指定している Windows-31J (シフトJIS の Windows 版) では化けてしまいます。 > UTF-8にするとプラグラムが実行されず: > /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char > `\357' in expression > /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char > `\273' in expression > /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char > `\277' in expression > というエラーが生じる Windows-31J として書かれているものを UTF-8 で実行しようとしたので、 当然エラーが出ます。 > 2)プラットフォーム関係なく共通なencodeの設定は可能でしょうか。 Mac のコンソールのエンコーディングをシフトJISに合わせるか、 プログラムのエンコーディングを UTF-8 に変えるかの二択ですね。 前者はコンソールの設定から変えられたはずです。 後者の場合は多分 TextWrangler に文字コードを指定して保存する機能があるので、 1 行目を -Ku にし、2行目を UTF-8 にした上で、UTF-8 として保存すればいいでしょう。 -- NARUSE, Yui <naruse@...> |
|
|
[ruby-list:46471] Re: encodingに関する問題?成瀬さん
返事をありがとうございます。 今後使用環境を書くようにします。 私は2つの方法でプラグラムを実行しています: 1)TextWranglerには実行機能がついています 2)Macにあるターミナル(これは成瀬さんが話しているコンソールと同じ意味 ですよね) 言われた通り、1 行目を -Ku にし、2行目を UTF-8 にしました。 #! ruby -Ku # -*- coding: UTF-8 -*- ターミナルのENCODINGリストには沢山のENCODEが選択されていますが、一つにし ないといけないのですか。 今の時点で実行してもエラーが起きています: /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char `\357' in expression /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char `\273' in expression /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char `\277' in expression NARUSE, Yui wrote: > >> 2)プラットフォーム関係なく共通なencodeの設定は可能でしょうか。 > > Mac のコンソールのエンコーディングをシフトJISに合わせるか、 > プログラムのエンコーディングを UTF-8 に変えるかの二択ですね。 > > 前者はコンソールの設定から変えられたはずです。 > 後者の場合は多分 TextWrangler に文字コードを指定して保存する機能があるので、 > 1 行目を -Ku にし、2行目を UTF-8 にした上で、UTF-8 として保存すればいいでしょう。 > |
|
|
[ruby-list:46473] Re: encodingに関する問題?成瀬です。
askar wrote: > 今の時点で実行してもエラーが起きています: > /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char > `\357' in expression > /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char > `\273' in expression > /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char > `\277' in expression おっと失礼、エラーメッセージを精査していませんでした。 これは UTF-8 の BOM がついているからですね。 TextWrangler で UTF-8 として保存する際に「BOMをつける OR つけない」的な オプションがどこかにありませんか。 そこで「BOM をつけない」の方を選んでください。 Unix 系 (Mac OS X 含む) のスクリプトを UTF-8 で保存する時は BOM をつけると 上記のようなエラーが出てしまうのです。 -- NARUSE, Yui <naruse@...> |
|
|
[ruby-list:46474] Re: encodingに関する問題?成瀬さん、
今度はエラー発生しませんでしたが、下記のように文字化けしています: ñºëO: appleÅAílíi:200â~ ñºëO: orangeÅAílíi:100â~ ñºëO: melonÅAílíi:600â~ ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB ñºëO: appleÅAílíi:200â~ ñºëO: orangeÅAílíi:100â~ ñºëO: melonÅAílíi:600â~ ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB NARUSE, Yui wrote: > 成瀬です。 > > askar wrote: >> 今の時点で実行してもエラーが起きています: >> /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char >> `\357' in expression >> /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char >> `\273' in expression >> /Users/askar/Documents/programming/ruby/ex517.rb:1: Invalid char >> `\277' in expression > > おっと失礼、エラーメッセージを精査していませんでした。 > これは UTF-8 の BOM がついているからですね。 > TextWrangler で UTF-8 として保存する際に「BOMをつける OR つけない」的な > オプションがどこかにありませんか。 > そこで「BOM をつけない」の方を選んでください。 > > Unix 系 (Mac OS X 含む) のスクリプトを UTF-8 で保存する時は BOM をつけると > 上記のようなエラーが出てしまうのです。 > |
|
|
[ruby-list:46475] Re: encodingに関する問題?askar wrote:
> 今度はエラー発生しませんでしたが、下記のように文字化けしています: > > ñºëO: appleÅAílíi:200â~ > ñºëO: orangeÅAílíi:100â~ > ñºëO: melonÅAílíi:600â~ > ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB > ñºëO: appleÅAílíi:200â~ > ñºëO: orangeÅAílíi:100â~ > ñºëO: melonÅAílíi:600â~ > ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB うーん、これはなんだろう。 なんとなくまだシフトJISで出力されているようにも見えます。 もしくは、日本語を含まれていないフォントが設定されているのかなぁ。 これって、ターミナルでの出力ですか? -- NARUSE, Yui <naruse@...> |
|
|
[ruby-list:46476] Re: encodingに関する問題?成瀬ん、
今確認したら、ターミナルでは日本語は問題なく表示されています。 TextWrangler内で実行すると文字化けするのです。 調べます。 アスカル NARUSE, Yui wrote: > askar wrote: >> 今度はエラー発生しませんでしたが、下記のように文字化けしています: >> >> ñºëO: appleÅAílíi:200â~ >> ñºëO: orangeÅAílíi:100â~ >> ñºëO: melonÅAílíi:600â~ >> ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB >> ñºëO: appleÅAílíi:200â~ >> ñºëO: orangeÅAílíi:100â~ >> ñºëO: melonÅAílíi:600â~ >> ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB > > うーん、これはなんだろう。 > なんとなくまだシフトJISで出力されているようにも見えます。 > もしくは、日本語を含まれていないフォントが設定されているのかなぁ。 > > これって、ターミナルでの出力ですか? > |
|
|
[ruby-list:46477] Re: encodingに関する問題?成瀬さん、
分かりました。 TextWrangler-->PreferencesのEncodingの画面ではUse UTF-8 for unix script I/Oにチェックを入れたら文字化けしなくなりました。 ありがとうございました。 askar wrote: > 成瀬ん、 > > 今確認したら、ターミナルでは日本語は問題なく表示されています。 > TextWrangler内で実行すると文字化けするのです。 > 調べます。 > > アスカル > > NARUSE, Yui wrote: >> askar wrote: >>> 今度はエラー発生しませんでしたが、下記のように文字化けしています: >>> >>> ñºëO: appleÅAílíi:200â~ >>> ñºëO: orangeÅAílíi:100â~ >>> ñºëO: melonÅAílíi:600â~ >>> ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB >>> ñºëO: appleÅAílíi:200â~ >>> ñºëO: orangeÅAílíi:100â~ >>> ñºëO: melonÅAílíi:600â~ >>> ÇPå¬Ç∏ǬîÉǧÇ∆ëSïîÇ≈900â~Ç≈Ç∑ÅB >> >> うーん、これはなんだろう。 >> なんとなくまだシフトJISで出力されているようにも見えます。 >> もしくは、日本語を含まれていないフォントが設定されているのかなぁ。 >> >> これって、ターミナルでの出力ですか? >> > > |
| Free embeddable forum powered by Nabble | Forum Help |