您的位置:首页 > 其它

vagrant reload命令报错:UndefinedConversionError

2015-07-28 11:10 357 查看
修改了Vagrantfile文件后,运行
vagrant reload
命令,控制台直接报错了,错误如下

/opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/subprocess.rb:28:in `encode': "\xE4" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/subprocess.rb:28:in `block in initialize'
from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/subprocess.rb:28:in `each'
......


回头仔细检查了一下Vagrantfile文件,只是修改了一下网络为public_network和IP,并没有什么问题,后来想了一下,该box是我重Windows上打包,然后在导入Mac系统中的

vagrant的源码使用Ruby实现的,Ruby 转码的方法:encode 有转码兼容,GBK转码为UTF-8不兼容,所以报错

解决方法:

思路:将参数用 force_encoding方法 强制转换成GBK编码即可

方法:找到报错的目录
/opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/subprocess.rb
文件找到line 26,将代码



修改为:



然后vagrant reload 没有报错,重启成功,代码同步成功。这是vagrant的一个bug。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: