• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSV形式にすると。。。)

CSV形式にすると。。。

このQ&Aのポイント
  • CSV形式に変換するプログラムを作成しましたが、ダブルクォーテーションの処理で文字化けが発生しています。
  • ファイルを読み込みCSVカンマ区切りのデータにするプログラムを作ったのですが、ダブルクォーテーションを取得行の行末に付加した場合に文字化けを起こすケースがあります。
  • 「150」が「"15"」のようになってしまいます。どなたか、対処方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

直接の原因は > $line =~ s/[^$1\n]$/\"/g; ではないかと思います。 「$1」の値は「直前の正規表現で1番目のグループにマッチした文字列」ですが、このコードの中にグループ指定をした正規表現が見当たりません。 また、$1 を外したとしても、「\n 以外の末尾1文字」をダブルクォートに変換しようとしていますので、やはりうまくないような気がします。 元データの形式やCSV化の仕様などが分からないので、これ以上のアドバイスはちょっと難しいです。 もし解決できないようでしたら、その辺の補足をお願いします。

kaji_0131
質問者

お礼

leaz024さん回答どうもありがとうございました。 leaz024さんの回答を参考にして何とか解決することができました。 確かに言われてみれば、という奴でした^^;  具体的には、 > $line =~ s/\n$/\"/g; という感じで最後の改行コードを置換するようにしました。 本当にどうもありがとうございました。

関連するQ&A