Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决
中文乱码解决办法
cmd下中文不能输入
将cmd代码页改成936:
chcp936
ruby读取中文强制设置为utf-8
可以在文件中加一个注释语句#encoding:UTF-8,ruby就会用utf-8格式载入
cmd输出乱码
这个解决不掉,我看到有人用了一个第三方库来解决输出
require'iconv' cov=Iconv.new('gbk','utf-8') putscov.iconv("北京奥运会!")
PS:Ruby程序中,最好不要出现中文,注释除外
解决ruby不支持openssl的问题
在RHEL5.4x86_64安装rails的时候,提示ruby不支持openssl
进入$RUBY_HOME/ext/openssl目录,执行rubyexconf.rb,出现如下错误:
===OpenSSLforRubyconfigurator=== ===Checkingforsystemdependentstuff...=== checkingfort_open()in-lnsl...no checkingforsocket()in-lsocket...no checkingforassert.h...yes ===Checkingforrequiredstuff...=== checkingforopenssl/ssl.h...no ===Checkingforrequiredstufffailed.===Makefilewasn'tcreated.Fixtheerrorsabove.
提示没有找到ssl.h,从http://www.openssl.org/下载了openssl-0.9.8k.tar.gz。解压,执行configure&&make&&makeinstall.回到$RUBY_HOME/ext/openssl重新执行
rubyextconf.rb--with-openssl-include=/usr/local/ssl/include/--with-openssl-lib=/usr/local/ssl/lib
成功。但接下来执行make时又出现新的错误:
~/sources/ruby-1.8.7-p174/ext/openssl$sudomake gcc-shared-oopenssl.soossl_x509.oossl_x509cert.oossl_x509crl.oossl_pkcs7.oossl_cipher.oossl_pkey_dh.oossl_ssl_session.oossl_x509attr.oossl_x509ext.oossl_ocsp.oossl_asn1.oossl_x509name.oossl_x509revoked.oossl_rand.oossl_pkcs12.oossl_x509store.oossl_ssl.oossl.oossl_digest.oossl_config.oossl_pkcs5.oossl_bio.oossl_pkey_dsa.oossl_pkey.oossl_x509req.oossl_pkey_ec.oossl_hmac.oopenssl_missing.oossl_ns_spki.oossl_pkey_rsa.oossl_engine.oossl_bn.o-L.-L/usr/local/ruby/lib-Wl,-R/usr/local/ruby/lib-L/usr/local/ssl/lib-Wl,-R/usr/local/ssl/lib-L.-rdynamic-Wl,-export-dynamic-lssl-lcrypto-lrt-ldl-lcrypt-lm-lc /usr/bin/ld:/usr/local/ssl/lib/libssl.a(s2_meth.o):relocationR_X86_64_32against`alocalsymbol' cannotbeusedwhenmakingasharedobject;recompilewith-fPIC /usr/local/ssl/lib/libssl.a:couldnotreadsymbols:Badvalue collect2:ldreturned1exitstatus make:***[openssl.so]Error1
提示重新试过编译openssl时带上-fPIC参数。于是重新编译openssl
.confile-fPIC