• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perlでの改行コードについて)

Perlでの改行コードについて

このQ&Aのポイント
  • Perlでの改行コードについて質問があります。
  • 現在、POSTで渡された<textarea>の値をポスグレに書き込み、HTML上で表示する処理を行っていますが、改行が正しく保存されません。
  • 改行コードの置換を試みましたが、うまくいきません。

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

  • ベストアンサー
回答No.2

> デフォルト文字列というのはどのよう状態のことを言うのでしょうか? >$str = ~s/\n\r/<br>/g; あ、これこれ、これのことです。 正規表現自体は問題なさそうだったのですが、どの文字列(変数)をどこに入れているか、を知りたかったのです。 おそらく、POSTデータを$strに入れておいて、$strのうちの\r\nを<BR>に変換する、という処理をされたいのでしょうから、上記構文になると思いますが、実際はどうされていたのでしょうか?(ちょっと文章からは読み取れなくって・・・すみません) あれ?改行(CRLF)って\r\nですよね? \n\rだとヒットしないかも・・・?

hrimfaxi
質問者

お礼

解答ありがとうございます。 あ、ホントだ。そこは補足時のミスです。 先ほど自己解決はいたしまして。 完全なこちらのミスで置換部分は関数にしていたのですが そこにreturnが抜けておりました。 該当個所をすべてコピペしておけばよかったですね。 ちょー初歩的なミスにお付き合い、いただきありがとうございました。

その他の回答 (1)

回答No.1

> DBには > 「あいうえおかきくけこ > さしすせそ」 > と登録され > > 表示では「あいうえおかきくけこさしすせそ」と表示されます。 DB上は「あいうえおかきくけこ\r\nさしすせそ」と登録されていて、それをHTMLで表示させると\r\nは(表示されないので)無視されているということではないでしょうか。 CRLFを<BR>に変換する正規表現のところは文法的には間違っていないようですが、ご質問の内容だけではデフォルト文字列がどう扱われているかわからないので・・・。そのあたりを見直してみてはいかがですか?

hrimfaxi
質問者

補足

お早い回答ありがとうございました。 デフォルト文字列というのはどのよう状態のことを言うのでしょうか? POSTで値が渡って受け取るときは CGI.pmのparamを使って取得しています。 それ以外はINSERTするときに「¥」とかをエスケープする処理だけをしています。 置換する時にbinmodeを使用して $str = "あいうえおかきくけこ さしすせそ"; binmode($str); の方がいのでしょうか? $str = ~s/\n\r/<br>/g; みたいな感じになるんでしょうか? んーわからなくなってきました。 よろしくお願いします。

関連するQ&A