iCal文件导入的一致编码

时间:2015-06-12 05:50:32

标签: ruby-on-rails utf-8 icalendar

我正在尝试使用iCalendar gem在rails 4网站上导入一些iCal文件。

有时文件的类型为“text/calendar;charset=utf-8”,有时为“text/calendar; charset=UTF-8;

我正在检索它:

uri = URI.parse(url)
calendar = Net::HTTP.get_response(uri)
new_calendar = Icalendar.parse(calendar.body)

当它text/calendar;charset=utf-8工作正常时。但是当它text/calendar; charset=UTF-8编码时我在字符串中得到UTF代码

SUMMARY:Tech Job Fair – City(ST) – Jul 1, 2015

最终成为

["Tech Job Fair \xE2\x80\x93 City(ST) \xE2\x80\x93 Jul 1", " 2015"]

然后将其保存到数据库中,这是不可取的。

charset / content-type是否在这里显示问题,或者它实际上只是从源代码编码错误了?

如何更改检索命令以有效地删除这些代码或将其作为UTF字符串告诉它,以便它首先不包含它们?

更新:有些是text/calendar;charset=utf-8,有些是text/calendar;charset=UTF-8,有些是text/calendar; charset=UTF-8。请注意,最后一个在两个段之间有一个空格。这会引起问题吗?

Update2:在Notepad ++中打开我的三个示例iCal文件,显示它们在菜单中编码为“UTF-8 without BOM”。

0 个答案:

没有答案