改行コード

[上に] [前に] [次に]
yasu [E-Mail] [HomePage] 1999/04/11(日) 10:03:23
CGIをやっているのですが、よく
$yasu =~ s/\n/<BR>/g;
又は
$yasu =~ s/\r\n/<BR>/g;
とかやりますよね。
これって、\r\nと\nの違いって、SJISとEUCの違いなのでしょうか?
それだと、どちらがどちらで(^^;)jcode.plで片方に直せるので
しょうか?

B-Cus 1999/04/11(日) 18:56:45
 \n … UNIXの改行コード
 \r … Macの改行コード
 \r\n … DOS/Windowsの改行コード
です。JISやEUCなどの文字コードとは全く関係ありません。

yasu 1999/04/11(日) 23:14:05
またまたB-Cusさんありがとうございます。
となると、<FORM>で送られてくるのは、(<TEXTAREA>)
OSごとに改行コードが違うのでしょうか?
そうすると、ファイルへの保存とかに異常とか起きませんか?

B-Cus 1999/04/11(日) 23:46:14
> OSごとに改行コードが違うのでしょうか?

まぁそういうことですが、
 「ブラウザによっては、そのOS独自の改行コードを送ってくる
  可能性がある」
と言った方が適切かな? Macのブラウザでも\r\nで送ってくる
ブラウザがないとは言えません。

# 規格としては、「改行コードは\n」とかって決まってるんでしたっけ?

> そうすると、ファイルへの保存とかに異常とか起きませんか?

ですから、
 s/(\r\n\n|\r\n|\n|\r)/<BR>/g;
などという処理噛ませて、改行コードを統一するわけです。

Mac用のNN3.0?(でしたっけ)は、バグにより\r\n\nを送ってきます。
あと、SEGA Saturnのブラウザも改行コードは \r ですね。

yasu 1999/04/13(火) 22:18:37
こっちも遅れてしまいました(^^;)
s/A/B/gのなかでも、(A|B)とかは使えたんですね。
知らなかった(^^;)
ありがとうございます。

yasu 1999/04/13(火) 22:20:17
[[解決]]
解決チェック忘れていた・・・(汗)

[上に] [前に] [次に]