アカウント名:
パスワード:
Fields containing line breaks (CRLF), double quotes, and commas should be enclosed in double-quotes.
そして w3m ユーザが普通に tab を入れてくるのですね。特に textarea ではエディタを立ち上げて入力するため、普通に送られてくる可能性あり。
まぁ、w3m を使うような人はわかってるでしょうから、そんなことでクレームを入れてくる人は稀でしょうね。
# でも、pre の内容としては tab → space の単純置換は危険そうですけどね。
前述の「フィールドセパレータとしてのカンマとフィールド内のデータとしてのカンマの扱い」だけでなく、各フィールドのデータをシングルorダブルクォートで囲んで出力するヤツもいたりした。極論すれば「1レコード内の各フィールドをカンマで区切る」という制約以外は無いに等しい状況だったわけで。
すべてのCSVを扱うソフトがRFCに準拠してくれればともかく、現状では、機械的処理を前提とすると、CSVほどタチの悪いフォーマットは無いと思う。それでも多くの場面でCSVが汎用データ交換形式として役に立ってた理由は、人間が可読可能なテキストデータだったから、最悪引っかかったとこだけエディタで修正するとか、スクリプト言語で前処理を行うとか、要は人力で問題を回避する方法が取れたからだと思う。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
開いた括弧は必ず閉じる -- あるプログラマー
text (csv) さえ扱えれば (スコア:0)
と、Officeを清書ツールとしてしか使っていないemacs使いのチラシの裏
Re:text (csv) さえ扱えれば (スコア:1)
Re:text (csv) さえ扱えれば (スコア:1)
それができないのなら、ダブルクォートで囲むようにするようにすれば良いのでは?
RFC4180 [ietf.org]より引用。
I'm out of my mind, but feel free to leave a comment.
Re:text (csv) さえ扱えれば (スコア:1)
個人的はCSVを使うくらいならTSVを使う。
Re:text (csv) さえ扱えれば (スコア:1)
「*。csvはexcelに関連づけられてる」って理由でCSVを使ってたんですが、
多言語なデータを扱おうとしてUnicode(UTF-8)なCSV(およびTSV)をEXCELで扱えないという問題に出くわしてからは、
コピー/ペーストをTSVとして使うことも増えてきました。具体的には
「Excelでセルを選んでコピー」「メモ帳にペースト」(あるいはその逆)
って方法ですが…
EXCELでのコピーをTSV扱いするのは、セル中のダブルクオートの扱いが腐ってますけど
改行やタブがあるときはダブルクオートでくくるけど、セル中にダブルクオートがあっても何もしてくれない
タブ区切りテキストで保存すれば、CSVと同等のエスケープ処理はしてくれるけど、Unicodeが扱えないし
Re: (スコア:0)
仮に適当なスペースで置換してごまかしても
大してクレームないし。
Re:text (csv) さえ扱えれば (スコア:1)
そして w3m ユーザが普通に tab を入れてくるのですね。特に textarea ではエディタを立ち上げて入力するため、普通に送られてくる可能性あり。
まぁ、w3m を使うような人はわかってるでしょうから、そんなことでクレームを入れてくる人は稀でしょうね。
# でも、pre の内容としては tab → space の単純置換は危険そうですけどね。
Re: (スコア:0)
この場合だと、住所にタブが使われないという保証はあるの?
たぶん(←これが言いたかった)
そんな新しいRFCを論拠にされてもなぁ (スコア:0)
前述の「フィールドセパレータとしてのカンマとフィールド内のデータとしてのカンマの扱い」だけでなく、各フィールドのデータをシングルorダブルクォートで囲んで出力するヤツもいたりした。極論すれば「1レコード内の各フィールドをカンマで区切る」という制約以外は無いに等しい状況だったわけで。
すべてのCSVを扱うソフトがRFCに準拠してくれればともかく、現状では、機械的処理を前提とすると、CSVほどタチの悪いフォーマットは無いと思う。それでも多くの場面でCSVが汎用データ交換形式として役に立ってた理由は、人間が可読可能なテキストデータだったから、最悪引っかかったとこだけエディタで修正するとか、スクリプト言語で前処理を行うとか、要は人力で問題を回避する方法が取れたからだと思う。