Git jekyll 中文标题问题

zlx_star · 2012年07月03日 · 最后由 zlx_star 回复于 2012年07月18日 · 6206 次阅读

jekyll 处理带有中文标题的文件会报错

[2012-07-02 23:38:10] ERROR ArgumentError: invalid byte sequence in US-ASCII
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:353:in `fnmatch'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:353:in `block in nondisclosure_name?'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:352:in `each'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:352:in `nondisclosure_name?'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:293:in `check_filename'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:305:in `shift_path_info'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:281:in `set_filename'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:236:in `exec_handler'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:171:in `do_GET'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/abstract.rb:35:in `service'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpservlet/filehandler.rb:167:in `service'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
    /home/zhu/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
localhost - - [02/Jul/2012:23:38:10 CST] "GET /2012/07/02/%E7%BF%BB%E8%AF%91.html HTTP/1.1" 500 313

仔细看,好像又是 webrick 的问题。

我还找到一个相关的 issue https://github.com/mojombo/jekyll/pull/531

请问大家有什么办法解决这个问题?

懒得折腾 jekyll 了,直接自己写一个~

你那是中文文件名...

#2 楼 @bhuztez 是的,中文文件名,从 WordPress 迁移博客,之前的很多都是中文名

#3 楼 @zlx_star 文件名改英文就好了嘛

有个 GEM,可以通过谷歌翻译,把标题机器翻成英文。

#4 楼 @bhuztez 当然这是不得已的做法

#5 楼 @mimosa 这个就不必了,量不是很大,如果要翻译的话可以自己来

实际上是在浏览器中出现中文会报错,文章中的中文能正常处理,如果将文件名中的中文转化为对应编码值就可以正常处理了

现在 OK 了

@zlx_star 您是怎么弄得啊?我写了点中文,做了点改动,结果也报错了 哪里可以用中文,哪里不能用呢?有什么办法。。。

#10 楼 @superbatironmans5 我目前发现中文标题或者内容在 github 上面显示完全没有问题。在本地中文内容没有问题,中文标题在打开会显示编码不支持的错误,改成英文名称就 OK 了。怀疑是我本地的服务器的配置不对,没有深究。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号