使用西里尔文名称保存文件

时间:2011-02-23 18:56:18

标签: ruby file character-encoding filenames

如何正确保存带有西里尔文名称的文件?

现在文件名如下:“МаксимР-РёРЅСЏРєРѕРІ壮举。靛蓝 - 你和我只有”。正确的名称是“МаксимЗиняковfeat.Indigo - You And Me Only”。

我从HTTP URL获取文件:

agent = Mechanize.new
agent.get(url).save_as("#{mp3_dir}/#{title}.mp3")

1 个答案:

答案 0 :(得分:0)

正如有人提到的,您可能需要使用titleiconv字符串转换为utf-8:

require 'rubygems'
require 'mechanize'
require 'iconv'

agent = Mechanize.new
# If source encoding is indeed windows-1251, 'from' is CP1251
title = Iconv.conv('UTF8', 'CP1251', title)
agent.get(url).save_as("#{mp3_dir}/#{title}.mp3")