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 件のコメント:
コメントを投稿