悪い英語をお待ち申し上げます。それはRubyのコードです。コンソールのキリル記号の問題
なぜコードが失敗するのか誰にも分かりますか?
SHで:そのようなファイル
をしかしTHICのコードでは、細かい
s = "работает"
`touch #{s}`
`cat #{s}`
`cat < #{s}`
問題は言葉でととする場合にのみ、ロシアのシンボル 'с' のある作品:митика開くことはできませんsymobol '<'
[email protected]:/tmp$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
[email protected]:/tmp$ ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
[email protected]:/tmp$ uname -a
Linux woto-work 2.6.32-26-generiC#48-Ubuntu SMP Wed Nov 24 10:14:11
UTC 2010 x86_64 GNU/Linux
[email protected]:/tmp$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.04.1 LTS
Release: 10.04
Codename: lucid
別の例
多分これはまた
[email protected]:~/rails/avtorif$ touch мистика
[email protected]:~/rails/avtorif$ ruby -e "`cat < мистика`"
[email protected]:~/rails/avtorif$ ruby -e '`cat < мистика`'
sh: cannot open ми�тика: No such file
Ruby 1.9.1を使用している 'en_US.UTF-8'環境で、ファイル名で同じ動作をします。 '\' echo "hello">#{s} \ 'を実行すると、"ми\321тика "(' ls -b')という名前のファイルが作成されます。 –
Rubyの問題ではなく、Ubuntuの問題だと思われます。 Pythonの上でこのコードも 正しい>>>インポートOS >>> os.system( '猫мистика') >>> os.system( '猫<мистика') SHに動作していないため、 :できませんмитика:そのようなファイルはありません 私はこの質問をRoRについてのロシアのメーリングリストの別のスレッドで尋ねましたが、一部の人々はこのバグを確認しています。 – woto