howls-macbook:one mimosa$ irb
irb(main):001:0> s = '\U+FFE4\U+FFB8\U+FFAD\U+FFE6'
=> ""
irb(main):002:0>
如何解决呢?
irb(main):029:0> x = "ruby 1.9.3 irb下不能用中文?!"
=> "ruby 1.9.3 irb下不能用中文?!"
irb(main):030:0> p x
"ruby 1.9.3 irb下不能用中文?!"
=> "ruby 1.9.3 irb下不能用中文?!"
irb(main):031:0>
Mac 需要先装 readline 如果是用 RVM 安装的话,要这样 https://rvm.beginrescueend.com/packages/readline/
irb(main):010:0* $KCODE
=> "NONE"
irb(main):011:0> $KCODE = "utf8"
=> "utf8"
irb(main):012:0> "你好"
=> "htcUPCT
这样的吗
jhjguxin@jhjguxin-virtual-machine:~/payment-china$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
jhjguxin@jhjguxin-virtual-machine:~/payment-china$ irb
1.9.2p290 :001 > "你好"
=> "你好"
1.9.2p290 :002 > $KCODE
(irb):2: warning: variable $KCODE is no longer effective
AY_PLF
对的
Ubuntu 1.9.2 里面 默认 就可以输入中文了 应该默认就是 UTF8 编码
Encoding.locale_charmap
=> "UTF-8"
1.9.3-p125 官方版表示無壓力。
⚡ irb
1.9.3p125 :001 > s = "能打中文嗎?"
=> "能打中文嗎?"
1.9.3p125 :002 > p s
"能打中文嗎?"
=> "能打中文嗎?"
The result is highly platform dependent. So Encoding.find(Encoding.locale_charmap) may cause an error. If you need some encoding object even for unknown locale, Encoding.find(“locale”) can be used.
捣鼓了半天 只能查看 编码 不知道怎么设定 local 编码 估计 取消了吧
# Encoding Class Methods
::aliases
::compatible?
::default_external
::default_external=
::default_internal
::default_internal=
::find
::list
::locale_charmap
::name_list
#ascii_compatible?
#dummy?
#inspect
#name
#names
#replicate
#to_s
build_package_combined_patch() {
local package_name="$1"
{
curl https://github.com/ruby/ruby/pull/47.diff | git apply
curl https://raw.github.com/gist/1859082/performance_and_backport_gc.patch | patch -p1
autoconf
./configure --prefix="$PREFIX_PATH" --disable-install-doc --with-readline-dir=$(brew --prefix readline)
make -j 8
make install
} >&4 2>&1
}
require_gcc
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
install_package "ruby-1.9.3-p125" "http://ruby.taobao.org/mirrors/ruby/ruby-1.9.3-p125.tar.gz" combined_patch
指定了 readline 目录。
问题出现的原因是用 rvm 装 ruby1.9.3 时没有正确编译 readline,好像是 mac 上才这样,用官方的方法(3 楼)重新编译一下 ruby 或者 readline 就可以了,我用的是后者,
$ cd $HOME/.rvm/src/ruby-1.9.3*/ext/readline
$ ruby extconf.rb -- --with-readline-dir="/usr/local/Cellar/readline/6.2.2"
$ make install
我在 Mac 10.6 下竟然这样启动“irb --noreadline”时可以输入中文,这样启动“irb --readline”则不能输入中文。
……11 楼那个图里,楼主直接输入了个中文,irb 解释成 identifier,然后出错信息是变量或方法未定义 这显然是能用中文,楼主根本就没看懂出错信息吧…………………… 在字符串内用 codepoint 的方法是"\uXXXX"或者"\u{XXXX}",小写 u,双引号,没有+