- 締切済み
改行コード変換のタイミングについて教えてください。
改行コード変換のタイミングについて教えてください。 前提: \n: ラインフィード \r: キャリッジリターン UNIX \n Winodws \r\n MAC \r PerlスクリプトによるCGIで、ブラウザに出力します。 このとき、生成するHTMLのFORM要素.INPUT要素.VALUE属性 に変数データを代入しています。 これは、文字列になっており、当初、\nを区切り文字として使用し、 HTMLとなってからJavaScriptでこの区切り文字を頼りに配列化しました。 ところが、MAC環境の方に確認をお願いしたところ、期待通りの動作をして おらず、調べたところ、\nがすべて\rに変換されていたため、JavaScriptで \nを探しても見つからなかったということがわかりました。 Windowsも\r\nに変換されています。 この改行コードの変換がなにを基準に、どのタイミングで起きているのかがよくわかりません スクリプトの文字コードとget要求をしてきたOSを見て、Apacheが行っているのか、 それとも、ブラウザがやっているのか。 はたまた、アプリケーション層に行くまでの下層プロトコルがやっているのか。 判断基準はGETの中にあるのか、出力されたcontent-typeなのか・・・・。 変換がなに依存なのかわからないと、どんなとき変換が起き、どんなときは起こらないのかが わからないので、このあたりの仕組みの詳細に詳しい方、ご教授願えませんか。 自分でもある程度調べたのですが、環境が限定されますし、ドキュメントもhttpプロトコル を調べるべきなのか、TCP/IPなのか、HTML(のFORMリクエスト)なのか、httpデーモン なのか、httpdが動いているUNIXサーバOSなのか、それともIEやNNの仕様を調べる必要があるのか・・・ どこがやっていることなのかわからないもので。
- みんなの回答 (2)
- 専門家の回答
お礼
とりあえず、締め切ることとします。 実験手法や公式(に近い)情報ソースがわからなかったのは残念ですけど、クライアントサイドで行われる、とおっしゃってくださった方がいたことだけでも大収穫です。 やはり、汎用性を考えると、どこでであれ、自動的に変換解釈が行われないような方法を採った方がいいですね。 どうもありがとうございました。
補足
いぇ、こちらこそ、お答えいただきありがとうございます。 再びの補足で申し訳ないのですが、 >このコード変換は、サーバーサイドではなく、クライアントサイドで行われます。 とのことですが、 この仕様についてを実際に確認できるドキュメントなどはどこかに公開されているでしょうか? また、調べるための方法&ツール(ブラウザのパーサー部が解析する前の通信状態を表示することができるブラウザなど)はないでしょうか? よろしくお願いします。>皆様