Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决,是一个比较复杂的问题,需要分步骤解决。
问题一:中文显示乱码
原因分析
cmd默认使用GBK编码,而Ruby默认使用UTF-8编码,所以在cmd下运行Ruby程序,中文容易出现乱码。
解决方案
- 设置Ruby默认编码为GBK
可以在Ruby文件开头添加以下代码:
#encoding:gbk
或者在cmd下运行Ruby程序时,使用以下命令将Ruby默认编码设置为GBK:
chcp 936
- 设置cmd编码为UTF-8
使用以下命令将cmd编码设置为UTF-8:
chcp 65001
问题二:不支持OpenSSL
原因分析
Ruby安装包默认不包含OpenSSL,需要手动安装OpenSSL并配置。
解决方案
- 下载OpenSSL安装包
从https://slproweb.com/products/Win32OpenSSL.html下载OpenSSL安装包,选择与Ruby版本相对应的版本下载,并安装。
- 配置环境变量
在系统环境变量中添加以下两个变量:
OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
PATH=C:\OpenSSL-Win32\bin;%PATH%
其中,路径C:\OpenSSL-Win32\bin为OpenSSL安装目录下的bin目录。
示例一:
以Ruby 2.6.8为例,在cmd下依次执行以下命令:
chcp 65001
ruby -v
输出如下:
ruby 2.6.8p205 (2021-07-07 revision 67951) [x64-mingw32]
可以看到,成功输出中文。
示例二:
以Ruby 2.7.4为例,在cmd下执行以下命令:
chcp 65001
gem install rails -v 6.0.4.1 --source http://registry.npm.taobao.org
输出如下:
Fetching concurrent-ruby 1.1.9
Installing concurrent-ruby 1.1.9
Fetching i18n 1.8.11
Installing i18n 1.8.11
...
Fetching web-console 4.1.0
Installing web-console 4.1.0
44 gems installed
可以看到,成功安装Rails,并且输出中文无乱码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决 - Python技术站