ব্রাউজারগুলি কি "\ r \ n" বা "\ n" প্রেরণ করে বা এটি ব্রাউজারের উপর নির্ভর করে?


102

এই প্রশ্নটি আমাকে এক মিলিয়ন বছর ধরে বিরক্ত করেছে ... যখনই আমি কোনও টেক্সারিয়া দিয়ে এমন একটি ওয়েবসাইট তৈরি করি যা মাল্টি-লাইনকে অনুমতি দেয় (যেমন কোনও ব্যবহারকারীর প্রোফাইলের জন্য "বায়ো") আমি সর্বদা নিম্নলিখিত প্যারানয়েড কোডটি লিখে শেষ করি:

// C# code sample...
bio = bio.Replace("\r\n", "\n").Replace("\r", "\n");
bio = Regex.Replace(@"\n{2,}", "\n\n");

সুতরাং, ব্রাউজারগুলি যদি এর জন্য <textarea name="Bio"></textarea>একাধিক লাইন থাকে তবে কি জন্য প্রেরণ করবে?


বাহ, আমি ভেবেছিলাম এটি একটি অদ্ভুত প্রশ্ন যা কোনও দৃষ্টি আকর্ষণ করবে না ... তবে 1 ঘন্টার মধ্যে 16 ভোট, ক্রেজি।
টিমোথি খৌরি

এটি সম্পর্কে চিন্তাভাবনা করে, আমি কখনই এর সাথে সম্পর্কিত সমস্যাটি পাইনি। যদি কেউ একটি নতুন লাইনে প্রবেশ করে তবে এটি একটি নতুন লাইন হিসাবে দেখাবে, সমস্ত ওএস'এ, মাইএসকিউএল ক্লায়েন্টে, ব্রাউজারগুলিতে ইত্যাদি this এটির মতো দেখে মনে হচ্ছে যে বেশিরভাগ সফ্টওয়্যার বিষয়টি নিয়ে কিছুটা সামঞ্জস্যপূর্ণ। অবশ্যই, আমি যদি এটির সাথে গুরুত্বপূর্ণ কিছু করতে যাচ্ছি তবে আমি সর্বদা স্বাভাবিক রাখি।
হালিল Özgür

যদি আমি "\ r \ n" এর উপর নির্ভর করে থাকি এবং তখন ব্যবহারকারীর বায়োতে ​​একটি "এইচটিএমএল বিন্যাসিত" সংস্করণ তৈরি করছিলাম এবং যেহেতু আমি কখনই "\ r \ n" জুড়ে না চলেছি, সমস্যাটি আসবে I একটি <p>ট্যাগ
টিমোথি খৌরি

উত্তর:


50

HTTP- র এবং এমআইএমই চশমা নির্দিষ্ট করে হেডার লাইন পান \ r \ N দিয়ে শেষ হবে, কিন্তু তারা (কিছু তর্ক করবে যদি তারা স্পষ্ট যে এটা স্পষ্ট নয়) পরিষ্কার কি একটি পাঠ্য এলাকা বিষয়বস্তু সঙ্গে কাজ করতে না হয়। (উদাহরণস্বরূপ, সমস্যাটি সম্পর্কে এইচটিএমএল ওয়ার্কিং গ্রুপের এই থ্রেডটি দেখুন ))

বার্তা শিরোনাম সম্পর্কে HTTP / 1.1 টির একটি উদ্ধৃতি এখানে:

বার্তা-শিরোলেখ ক্ষেত্রগুলির জন্য লাইন টার্মিনেটর হ'ল সিক্যুয়েন্স CRLF। তবে, আমরা সুপারিশ করি যে অ্যাপ্লিকেশনগুলি, যখন এই জাতীয় শিরোনাম বিশ্লেষণ করে, একটি একক এলএফকে লাইন টার্মিনেটর হিসাবে স্বীকৃতি দেয় এবং শীর্ষস্থানীয় সিআর উপেক্ষা করে।

আমি সাধারণভাবে এটি একটি ভাল কৌশল বলে মনে করি: আপনি যা উত্পাদন করেন তা সম্পর্কে কঠোর হন তবে আপনি যা গ্রহণ করেন তাতে উদার হন। আপনার ধরে নেওয়া উচিত যে আপনি সমস্ত ধরণের লাইন টার্মিনেটরগুলি পাবেন। (দ্রষ্টব্য যে সিআরএলএফ এবং এলএফ ছাড়াও ম্যাক ওএস -9 একাই সিআর ব্যবহার করেছে এবং এর আশেপাশে এখনও কয়েকটি রয়েছে Un ইউনিকোড স্ট্যান্ডার্ড (বিভাগ 5.8) লাইন টার্মিনেটর হিসাবে স্বীকৃত হওয়া উচিত এমন বহু চরিত্রের সিকোয়েন্সগুলি নির্দিষ্ট করে; এখানে তাদের একটি তালিকা আছে ।)


6
আমি বিশ্বাস করি না যে চশমা নির্দিষ্ট করে একটি টেক্সারিয়া কী উত্পাদন করে।
মার্ক টমাস

2
@ উইল: আবার আসল প্রশ্নটি পড়ুন। এটি ব্রাউজারগুলি কীভাবে কোনও সামগ্রীর এনকোড করে তা সম্পর্কে জিজ্ঞাসা করে textarea(এটি এমন কোনও বিষয় যা অনুমান বা কমপক্ষে টেডের উদ্ধৃত অংশটি বাধাগ্রস্ত করে না)।
জন বার্থোলোমিউ

2
@ মার্ক - আপনি ঠিক বলেছেন। বিভিন্ন ফোরামে সেই সমস্যা নিয়ে অন্তহীন বিতর্ক রয়েছে। ( 1995 থেকে এই থ্রেডটি এইচটিএমএল ওয়ার্কিং গ্রুপ থেকে দেখুন
টেড হপ্প

2
এই উত্তরটি সম্পাদনা করা দরকার। এটি HTTP অনুমানের উদ্ধৃতি দিয়ে শুরু হয় তবে এটি টেক্সেরিয়াসের সাথে সম্পর্কিত নয়।
ডাকমাস্টার

2
আমি করেছিলাম, তবে উত্তরটি এখনও এইচটিটিপি উদ্ধৃত করে শুরু হয়, যা উল্লেখ না করা হলে জোর দেওয়া ভুল ধারণা। আপনার অন্তর্ভুক্ত উদ্ধৃতিটি বিশেষত "বার্তা-শিরোলেখ ক্ষেত্রগুলিকে" সম্বোধন করে তবে textareaসেগুলি বার্তা শিরোনাম ক্ষেত্র হিসাবে প্রেরণ করা হয় না। textareaগুলি মেসেজ-বডিতে এনকোড করুন যা আলাদা।
ডাকমাস্টার

30

ব্রাউজারগুলি যদি এর জন্য <textarea></textarea>একাধিক লাইন থাকে তবে কি জন্য প্রেরণ করবে?

সমস্ত আধুনিক ব্রাউজার সিআরএলএফ ( \r\n) প্রেরণ করে । তবে এটি এমন কিছু নয় যা সন্তোষজনকভাবে মানক করা হয়েছে তাই আমি সমস্ত মাল্টি-লাইন ইনপুট পাঠ্যের নতুন লাইনের স্বাভাবিককরণের জন্য এটি অবশ্যই যথাযথ বিবেচনা করব।

যখন মানটি কোনও ফর্ম থেকে সরাসরি জমা দেওয়ার পরিবর্তে জাভাস্ক্রিপ্টের মাধ্যমে পড়ে, তখন ব্রাউজারের আচরণটি পৃথক হয়। আইআর এবং অপেরা সিআরএলএফ এর সাথে স্ট্রিং ফেরত দেয়; ফায়ারফক্স এবং ওয়েবকিট এলএফ ফেরত দেয়। সুতরাং জাভাস্ক্রিপ্ট / এক্সএমএলএইচটিএইচপিআরএকস্ট সাহায্যের সাথে জমা দেওয়া কোনও ফর্ম উভয় ফর্মের মধ্যে আসার সম্ভাবনা রয়েছে।


প্ল্যাটফর্ম জুড়ে কোনও নির্দিষ্ট ব্রাউজারে জাভাস্ক্রিপ্ট ধারাবাহিকভাবে আচরণ করে? (উদাহরণস্বরূপ, ফায়ারফক্স কি উইন্ডোজ, ম্যাকস এবং মোবাইল প্ল্যাটফর্মগুলিতে এলএফ দিয়ে স্ট্রিংগুলি ফেরায়?)
টেড হপ

1
@ টেড: ফায়ারফক্স, অপেরা এবং ওয়েবকিটের প্ল্যাটফর্মগুলিতে এই আচরণটি সামঞ্জস্যপূর্ণ। আইই 5 / ম্যাক আমি পরীক্ষা করি নি, কারণ এটি এখন দীর্ঘ-মৃত, তবে সেই ব্রাউজারের আই 5 / উইনের অনেক পার্থক্য রয়েছে।
ববিনস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.