- ベストアンサー
改行文字保存時のゴミ
onosukeの回答
- onosuke
- ベストアンサー率67% (310/456)
スクリプトに於いて。。 データを読み込み,希望の形式に変換してから保存する。 これだけでは?
関連するQ&A
- textareでの改行
ホームページ上のtextareaで入力してもらった情報を取得するCGI(perl)スクリプトを書いています。流れとしては,フォーム上で入力した情報をCGIで取得→確認画面を表示→問題無ければメールフォームとして送信,となっています。 このスクリプト上で問題となっているのが,textareaでは自動的に改行処理(wrap=softと同じ?xhtmlで書いているので,wrap属性は指定していません。)するときに入力される改行コードと,入力者が意図的に入力する改行コードを判別出来ないということです。自動的に挿入される\n(0x0A)を削除しようとスクリプト上で, $text =~s/\r\n/\n/g; $text =~s/\r/\n/g; $text =~s/\n//g; と入れたところ,全ての改行コードが変換処理されてしまい,入力者が意図的に入れた改行コードまで処理されてしまいます。 スクリプト上,もしくはxhtmlと組み合わせて,自動的に挿入される改行コードだけを消去して,意図的に入力した改行コードだけを残す処理は出来ないものでしょうか? phpなどを使うと出来るようですが,ある程度perlのcgiで作成してしまったので,このままで出来ればと思っています。よろしくお願いします。
- 締切済み
- Perl
- 改行コードを保存できない。
<textarea wrap="hard" name="sentence" rows="3" cols="30"></textarea> このフォームで、入力したデータは、 PostgreSQLのテーブルに保存されるように構成しました。 フィールドは、"text"型です。 いざそれを、phpでHTMLに呼び出すと、改行文字は無視されます。 実際に、データベースを開くと、その値はこのようになっていました。 "ああああ・・あああ・・・・ああ" 改行コードはどうやら、"・"2個を改行1つと扱って保存しているようでした。 phpで、・・を含む値をHTML呼び出す時、 ・・を<BR>として呼び出して、改行してしまう技はないでしょうか?
- 締切済み
- PostgreSQL
- 改行コードが半角スペースになってしまいます
もしかしたらカテゴリはphpかも知れません。 よろしくお願いします。 phpとMySQLでWEBアプリを作っています。html上のtextareaフォームに入力した文字列を、phpを使ってMySQLにINSERTします。この文字列には改行(CRLF)も含まれます。 それをSELECTで参照し表示させると、改行が半角スペースに変換されてしまいます。 phpMyAdminで見てみるとちゃんと改行が入っています。 つまり、格納の段階ではちゃんと改行コードが入っているんですが、取り出すときに変換されてしまうようです。 この場合、どのように対処すればいいのでしょうか?
- ベストアンサー
- MySQL
- TEXTAREAで改行するとついてくるゴミコード
自分で作成したCGIで送信されてきたフォームデータを 取得し、テキストファイルに出力するような処理をやってまして、 その送信されるデータにはTEXTAREAで入力されたデータもあります。 CGIの処理後に出力されたファイルをテキストエディタで開こうしたら、 テキストエディタでオープン不正であるようなメッセージが表示されました。 自分でもその原因についてバイナリエディタで調べたところ、 TEXTAREAで改行されたところに不正なゴミコードが混ざっているようでした。 改行コードは16進数でいうと「0D0A」のはずですが、バイナリファイルで みたところ改行部分が「0D0D0A」となっているようで、どうやら「0D」の余計な コードがテキストエディタで開いた時、エラーを発生させている原因となってるようです。 CGIの処理内でこの「0D」コードを削除する処理をいれるのもいいんですが、 なにか簡単にこの「0D」というゴミコードを取り除きたいのですが、 ナニかいい方法ないでしょうか?
- ベストアンサー
- CGI
- UNIXでの改行コードの置換
2バイト改行コードが入ってるデータを1バイト改行に置換してから、 コボルにて入力ファイルとして扱いたいのですが、 UNIXのコマンドで、置換することは可能でしょうか? ちなみにファイルは可変長です。 どなたかご存知の方がいられましたら、ご教授頂けます様よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- Shift-JISの文字と改行コードについて
TEXTAREAで入力した値をDBに対して、 .htmlspecialchars(mysql_real_escape_string(stripslashes($_POST["in3"])),ENT_QUOTES) の記述で保存した時、 文字化けコード(「ソ」「表」)が入っている場合に改行を行うと、 改行部に「\r」が文字として保存されてしまいます。 また、文字化けコードがない場合には「\r」は表示されず、 文字化けコードと改行までの間に半角英数字が入っていると「\r」は表示されません。 このような状態になる理由や回避方法についてコメントいただきたく思います。 よろしくお願いいたします。
- ベストアンサー
- PHP
- 改行が半角スペースに変わる
phpのメールフォームからメールを送信するとtextareaの改行した箇所が 半角スペースになってしまいます。phpはUTF-8で改行コードはLFです。 送信前の確認画面までは改行された状態で見れるので送信時に改行が 消されてるのかと思うのですがいまいち原因がわからずです。。。 似たような質問が過去ログにもあったので参照しtextareaのnameがmsgなので nl2br($msg); を試してみたのですが改行にはなりませんでした。 どのようにしたら半角スペースではなく改行されるようになるでしょうか?
- 締切済み
- PHP
- 文章の改行の取り扱いについて
CGIをPerlで組んでいます。 掲示板を運営しておりまして、利用者がTextareaフォームで文章を入力するのですが、改行がいつの間にか認識されなくなってしまいました。 認識されなくなったというのは、登録の時ではなくて、保存したモノを呼び出す時です。 保存の仕方が悪いのかと思ったりもしますが、 突然そうなってしまったので、理由がよく分かりません。 (1)一般的に、改行のエスケープシーケンスは \n と \r があるかと思うのですが、 それぞれ何が違うのでしょうか? ちなみに掲示板はi-modeとPCと両方に対応しており、 同じ内容をi-modeでもPCでも読めるようになっています。 (2)また、入力された文章をファイルに保存する時の 改行コードの置換は どのような方法がベストなのでしょう? なにか手がかりになるようなコメントでも構いませんのでよろしくお願いいたします。 _
- ベストアンサー
- CGI