OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

文章の改行の取り扱いについて

  • すぐに回答を!
  • 質問No.115599
  • 閲覧数75
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 40% (100/250)

CGIをPerlで組んでいます。

掲示板を運営しておりまして、利用者がTextareaフォームで文章を入力するのですが、改行がいつの間にか認識されなくなってしまいました。

認識されなくなったというのは、登録の時ではなくて、保存したモノを呼び出す時です。


保存の仕方が悪いのかと思ったりもしますが、
突然そうなってしまったので、理由がよく分かりません。

(1)一般的に、改行のエスケープシーケンスは \n と \r があるかと思うのですが、
それぞれ何が違うのでしょうか?

ちなみに掲示板はi-modeとPCと両方に対応しており、
同じ内容をi-modeでもPCでも読めるようになっています。

(2)また、入力された文章をファイルに保存する時の 改行コードの置換は どのような方法がベストなのでしょう?



なにか手がかりになるようなコメントでも構いませんのでよろしくお願いいたします。




_
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル5

ベストアンサー率 57% (4/7)

\nはLF(ラインフィード)
\rはCR(キャリッジリターン)

ラインフィードとかキャリッジリターンというのはタイプライターの名残だとは思いますが、詳しくは知りません

で、OSによって改行コードの扱いがちがうんです。
Windows CR LF \r\n
Macintosh CR \r
UNIX LF \n

ですから置換はPerlの置換演算子を使うのが手っ取り早いかと
こんな感じに...

#WINDOWSの改行コードを<BR>タグに
$string=~ s/\r\n/<BR>/g;

#Macの改行コードを<BR>タグに
$string=~ s/\r/<BR>/g;
お礼コメント
u16

お礼率 40% (100/250)

早速のご回答ありがとうございます。

WIN、MAC、UNIXによって違うんですね。


ってことは 環境変数でOSを特定した上で
置換演算の方法を変えなければいけないのでしょうかね。

ん~~なかなか難儀ですね。


参考になりました。
ありがとうございます。

_
投稿日時 - 2001-08-08 21:23:47
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル12

ベストアンサー率 75% (398/526)

下記ページが非常に参考になります。ご一読ください。 ・改行コードを統一する ・改行コードを <BR> に変換する ・改行コードを削除する ...続きを読む
下記ページが非常に参考になります。ご一読ください。

・改行コードを統一する
・改行コードを <BR> に変換する
・改行コードを削除する
お礼コメント
u16

お礼率 40% (100/250)

大変参考になるページをありがとうございます。

なかなか奥が深いんですね。

勉強させていただきます。

いろいろ試してみて、ご報告します。

ポイントは必ず発行しますので。

_
投稿日時 - 2001-08-08 21:36:02
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ