编码Nginx缓存的文件名

时间:2011-12-07 17:45:15

标签: ruby-on-rails ruby encoding nginx freebsd

我有UTF-8这样的网址请求:

http://www.example.com:8080/pk/s/151x120/%D8%A2%D9%88%D8%A7%D8%B2-%DA%A9.jpg

我将结果存入文件名为

的文件中
%D8%A2%D9%88%D8%A7%D8%B2-%DA%A9.jpg

但是nginx似乎没有看到缓存并重做相同的请求。我发现nginx会加载这种UTF-8文件名:

\341\203\250\341\203.jpg

但是,我不记得编码的名称或ruby方法产生这样的文件名...... :(

使用:Rails 3.1.3,Ruby 1.9.2,Nginx和FreeBSD

1 个答案:

答案 0 :(得分:1)

您是否只想忘记Percent-encoding

irb(main):001:0> require 'uri'
=> true
irb(main):002:0> URI.unescape "http://www.example.com:8080/pk/s/151x120/%D8%A2%D9%88%D8%A7%D8%B2-%DA%A9.jpg"
=> "http://www.example.com:8080/pk/s/151x120/\330\242\331\210\330\247\330\262-\332\251.jpg"