rails:3820
From: dezawa <dezawa@a...>
Date: Sat, 22 Sep 2012 16:53:16 +0900
Subject: [rails:3820] sjisかeucかutf-8か分からないファイルの扱い
出沢 @ Rails3.2 移行勉強中です
Rails2.3→3.2 というより ruby1.8→1.9 問題なのですが
Railsならではの解もあるかも、とこちらにpostします。
CSVを取り込んで処理するactionがあります。
Windowsな人は(多分) shift-jis、unixな人はeucかutf-8で
書いてきます。
ruby1.8 on Rails2.3 のときは NKF.nkf("-w",File.read(csvfile))
で済ませていたのですが、ruby1.9 on Rails3.2で困りました。
codingが分かって居れば IOで :external_encoding を指定すれば
よいのですが、読んでみないと分からない。
  # 読んでも、判定できる標準のmethodはないみたいですね?
String#encode で変換後encoingを指定しても元encodeingを
明示しないと期待通りには変換されない。
こういう場合どうなさっていますか?
いまはしかたなく NKF を使うままでいます。
# 不思議な事に、shift-jis のファイルを default_externalで
# 読んでしまっても、NKF.nkf("-w",File.read(csvfile))で通る!?
--
ML: rails@r...
使い方: http://QuickML.com/
-> 3820 2012-09-22 09:53 [dezawa@a... ] sjisかeucかutf-8か分からないファイルの扱い 3821 2012-09-22 12:42 ┗[masaki@h... ] 3822 2012-09-22 13:04 ┗[dezawa@a... ]