vagrant reload命令报错:UndefinedConversionError

来源:互联网 发布:lte网络优化工作怎么样 编辑:程序博客网 时间:2024/06/18 10:10

修改了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。

1 0
原创粉丝点击