pdf-writer-1.1.8/lib/pdf/writer.rb:712:无效的多字节字符(US-ASCII)

vee*_*er7 9 ruby git rubygems ruby-on-rails

我开始时使用ruby version 1.9.3并收到错误thin server

    /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.12.4/lib/bundler/runtime.rb:100:in `require': /usr/local/lib/ruby/gems/1.9.1/gems/pdf-writer-1.1.8/lib/pdf/writer.rb:712: invalid multibyte char (US-ASCII) (SyntaxError)
/usr/local/lib/ruby/gems/1.9.1/gems/pdf-writer-1.1.8/lib/pdf/writer.rb:712: invalid multibyte char (US-ASCII)
/usr/local/lib/ruby/gems/1.9.1/gems/pdf-writer-1.1.8/lib/pdf/writer.rb:712: syntax error, unexpected $end, expecting keyword_end
    content = "%PDF-#{@version}\n%âãÃÓ\n"
                                    ^
    from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.12.4/lib/bundler/runtime.rb:100:in `rescue in block in require'
    from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.12.4/lib/bundler/runtime.rb:77:in `block in require'
    from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.12.4/lib/bundler/runtime.rb:70:in `each'
Run Code Online (Sandbox Code Playgroud)

我从这里得到了解决方案pdf-writer无效的多字节字符(US-ASCII)期望keyword_end内容="%PDF - #{@ version} \n%ãÏÏ\n"Rails 3

我改变了我gemfile pdf-writer的意思

gem 'pdf-writer', :git => 'git://github.com/metaskills/pdf-writer.git'

现在,当我运行bundler来安装pdf-writergem时,我得到timeout如下错误

github.com[0: 192.30.252.123]: errno=Connection timed out
fatal: unable to connect a socket (Connection timed out)
Retrying git clone 'git://github.com/metaskills/pdf-writer.git' "/usr/local/lib/ruby/gems/1.9.1/cache/bundler/git/pdf-writer-ce9b6a7a72845526358421df666643f35691567f" --bare --no-hardlinks --quiet due to error (4/4): Bundler::Source::Git::GitCommandError Git error: command `git clone 'git://github.com/metaskills/pdf-writer.git' "/usr/local/lib/ruby/gems/1.9.1/cache/bundler/git/pdf-writer-ce9b6a7a72845526358421df666643f35691567f" --bare --no-hardlinks --quiet` in directory /apps/hours_report_3/current has failed.
github.com[0: 192.30.252.123]: errno=Connection timed out
fatal: unable to connect a socket (Connection timed out)
Git error: command `git clone 'git://github.com/metaskills/pdf-writer.git'
"/usr/local/lib/ruby/gems/1.9.1/cache/bundler/git/pdf-writer-ce9b6a7a72845526358421df666643f35691567f" --bare --no-hardlinks --quiet` in directory
/apps/my_dashboard/current has failed.
Run Code Online (Sandbox Code Playgroud)

nra*_*ako 0

所以这可能是几个不同的问题。对于第一个错误,您可以/usr/local/lib/ruby/gems/1.9.1/gems/pdf-writer-1.1.8/lib/pdf/writer.rb将显式编码添加到-的顶部

# encoding: utf-8
Run Code Online (Sandbox Code Playgroud)

这将侵入较旧的库,并且充其量是脆弱的,因为您的 Gemfile 无法移植到其他机器。

对于第二个错误,看起来缓存中的现有 gem 与您尝试安装的远程 gem 之间可能存在冲突,因为它们具有相同的名称。

您可以尝试在本地卸载它以清除缓存 -

gem uninstall pdf-writer
Run Code Online (Sandbox Code Playgroud)

然后再捆绑起来——

bundle install
Run Code Online (Sandbox Code Playgroud)

Ruby 1.9.3已于2015 年 2 月达到使用寿命,因此这不是一个理想的情况,但考虑到限制,这应该可以让您继续下去。