2014年1月12日日曜日

ruby1.9のcgiでテキストファイルを受け取る

ruby1.9からはエンコーディングの仕様が変わっているため、適当に検索してでてきたファイルをpostで受け取る方法が動かなかった。 ファイルと内部エンコードが共にUTF-8であり、下記のようなコードで対応した。 cgi = CGI.new value = cgi.params['file'][0] v = value.read() # バイナリ(US-ASCIIのString)として読み込む txt = v.encode('utf-8', 'utf-8') # vをUTF-8として解釈し、UTF-8の文字列として返す ruby1.8だとencode()の部分が不要となる。 フォームのHTMLはruby1.8の時と変更なし。

0 件のコメント:

コメントを投稿