パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Excelのデータってありますか?」記事へのコメント

  • by Anonymous Coward

    神 Excelと違って、楽勝だね。

    "❶","12,000㌕","32.1㌫"
    Ⅱ,1万kg,46

    全部にダブルクォート付きくらいなら、除去するだけだから楽勝だが。
    下手にデータの方にもダブルクォートがある場合ってどうなるんだろ。

    • by Anonymous Coward

      ダブルクォートの出力方法がそもそも複数ある。
      ダブルクォートが2個並ぶ形式(普通はこの形式)でエスケープ。
      バックスラッシュ(円記号)の後ろにダブルクォートでエスケープ。
      ダブルクォートを単なる通常文字として扱う(この場合フィールド内に区切り文字や改行文字は入力不能)。
      もしかすると、ダブルクォートで括った上で区切り文字に隣接しない場合はダブルクォート一文字、
      区切り文字に隣接する場合はダブルクォートを一文字増やすって実装もあり得るだろうか?

      二重ダブルクォートだけサポートしとけば大概は大丈夫だろうけど、
      もし方言含めてパースするなら当該形式で矛盾が起きない形式のうち
      最も一般的な方式であると推定が行えてから読み込みだねぇ……
      区切り文字が破壊されればフィールド数の不揃いで検知できるが、
      全部不揃いなパターンや破壊が起きないパターンだと確定困難。

      • > ダブルクォートの出力方法がそもそも複数ある

        他の方も言及されてますが
        RFC 4180 というデファクトスタンダードがあります。
        それによればエスケープ方法は二重引用符を重ねる形式:

        > "aaa","b""bb","ccc"

        の1パターンのみ許容されるということになりますね。
        つまり「RFC 準拠のCSVでお願いします!」と言っとけばOKってことです。

        http://www.kasai.fm/wiki/rfc4180jp [kasai.fm]

        • by st1100 (45287) on 2020年11月14日 0時11分 (#3923894)

          RFCで定義されて、もう15年もたつのか。

          親コメント
          • by Anonymous Coward

            RFCをデファクトと呼ぶのはどうなのか

            • by Anonymous Coward

              RFCがイコールでデファクトスタンダードなのではないですよ。

              RFCで定義されたことによりデファクトになったものもありますし
              デファクトだったのでRFCに定義されるようになったものもあります。
              そしてもちろん、RFCで定義されているにも関わらず全くスタンダードに
              なっていないものもあります。

              RFCという総体はデファクトかもしれないしそうでないかもしれない、
              あやふやなものです。
              RFC-XXX という具体的な数字つきの個別の話でデファクトかどうかを
              語っている人と、総体で捉えている人とがいるようなので
              そこは誤解の元ですから注意したいですね。

※ただしPHPを除く -- あるAdmin

処理中...