を使用してください。open-uri
のopen()
を使用すると、私のコントロール下にない任意のサーバからファイルを取得します。サーバは、ファイルのContent-Typeを指定することができる。 text/calendar; charset=utf-8
またはtext/calendar; charset=ISO-8859-1
です。この場合、open()
は、その文字セットがサーバーの主張どおりであると信じることができてうれしいです。しかし、サーバが文字セットを指定していない場合、open()
は文字セットが "ASCII-8BIT"であると思われます。 text/calendar
、つまり「iCalファイル」は通常「UTF-8」としてエンコードする必要があるため、open()
は、文字セットが「UTF-8」(文字セットが指定されていない場合)と仮定します。open-uriを使用してデフォルトの文字セットを指定しますが、サーバ提供の文字セットを使用する場合は
charsetが指定されていない場合には、と仮定するだけで、サーバの意思決定を尊重して任意の文字セットでファイルを提供することに重点を置いています。
open('http://my-test-uri.test', 'r:UTF-8')
を試しましたが、サーバが "ISO-8859-1"のような異なる文字セットを指定していても、無条件にその文字セットをオーバーライドします。