ইউটিএফ -8 সিএসভি ফাইলগুলিতে একটি বিওএম (বাইট অর্ডার চিহ্ন) থাকা উচিত?


37

আমাদের লাইন অফ বিজনেস সফ্টওয়্যার ব্যবহারকারীকে নির্দিষ্ট ডেটা সিএসভি হিসাবে সংরক্ষণ করতে দেয় । যেহেতু বন্যগুলিতে প্রচুর বিভিন্ন ফর্ম্যাট (যা "সিএসভি" নামে পরিচিত) প্রচলিত রয়েছে, তাই আমরা "ডিফল্ট ফর্ম্যাট" কেমন দেখতে হবে তা সিদ্ধান্ত নেওয়ার চেষ্টা করছি।

  • লাইন / ফিল্ড বিভাজক এবং পালানোর বিষয়ে, আমরা ব্যবহার করতে পারি এমন একটি মান রয়েছে: আরএফসি 4180

  • পাঠ্য এনকোডিং সম্পর্কিত, ইউটিএফ -8 "দশমিক ডিফল্ট ফাইল ফর্ম্যাট" হিসাবে গত দশকে আবির্ভূত হয়েছে, তাই আমরা এটি ব্যবহার করব।

একটাই প্রশ্ন খোলা আছে: আমাদের কি শুরুতে কোনও বিওএম যুক্ত করা উচিত ? আমি সাধারণভাবে বিওএম ব্যবহারের বিষয়ে একাধিক মতামত এবং উপকারিতা / বিধিগুলি পড়েছি, তবে কি কোনও "অফিসিয়াল" সুপারিশ বা সিএসভি ফাইলগুলিতে বিওএম ব্যবহারের জন্য কমপক্ষে কোনও ধরণের সম্প্রদায় sensকমত্য রয়েছে?


7
যদি এটির বিওএম থাকে তবে এটি ইউটিএফ -8 নয়। তবে প্রোগ্রামগুলি কী ফর্ম্যাট চায়। তাদের যদি কোনও বিওএমের প্রয়োজন হয় (প্রধানত মাইক্রো-স্লোথ) তবে আপনার একটি যুক্ত করতে হবে তবে ইউটিএফ -8 + বিওএম ≠ ইউটিএফ -8।
ctrl-alt-delor

3
যদিও সিএসভি আপাতভাবে উত্পন্ন করা সহজ, তবুও অনেকগুলি সামঞ্জস্যের সমস্যা রয়েছে, বিশেষত আপনি যদি খাঁটি 7-বিট এএসসিআইআই থেকে বিভ্রান্ত হন তবে আমি খুব দৃ strongly়ভাবে আপনাকে বাস্তব এক্সএলএসএক্স উত্সাহিত করার পরামর্শ দিচ্ছি যদি লক্ষ্য এটির জন্য ব্যবহারকারীরা খোলা থাকে এক্সেলে (এটি অন্য কোনও সফ্টওয়্যারটিতে পুনরায় আমদানি করার পরিবর্তে, আপনাকে বিভাজক, এনকোডিং ইত্যাদির জন্য বিকল্প দিতে হবে)। বেশিরভাগ ভাষার জন্য এখানে গ্রন্থাগার রয়েছে এবং আপনি এবং আপনার ব্যবহারকারীদের প্রচুর সময় সাশ্রয় করবেন।
jcaron

2
আপনি যদি সিএসভি রুটটি নিয়ে যান তবে ম্যাক এবং পিসি উভয় ক্ষেত্রেই এক্সেলটির বেশ কয়েকটি সংস্করণ সহ ফাইলটি খুললে কি হয় তা পরীক্ষা করে দেখুন। এছাড়াও সচেতন থাকুন যে আপনি যখন ফাইলটি খোলার জন্য ডাবল-ক্লিক করেন বা মেনুটির মাধ্যমে ফাইলটি খোলেন তখন এক্সেলের কিছু সংস্করণ একই রকম আচরণ করে না।
jcaron

2
এটি যদি এক্সেলের মধ্যে সঠিকভাবে খোলা থাকে তবে বিষয়টি কেন গুরুত্বপূর্ণ? প্রশ্নের কোনও কিছুই বলছে না
এক্সেলকে

উত্তর:


55

ইউটিএফ -8 এর জন্য নয় , মন্তব্যে বিভিন্ন ক্যাভেট দেখুন।

এটি অপ্রয়োজনীয় (ইউটিএফ -8 এর কোনও বাইট অর্ডার নেই) ইউটিএফ -16 / 32 এর বিপরীতে এবং ইউনিকোড স্ট্যান্ডার্ডে প্রস্তাবিত নয় । ইউটিএফ -8 কে বিওএমের সাথে "বন্যের সাথে" দেখাও বেশ বিরল, সুতরাং আপনার যদি কোনও বৈধ কারণ না থাকে (যেমন মন্তব্য হিসাবে, আপনি এমন সফ্টওয়্যার নিয়ে কাজ করবেন যা বিওএমকে প্রত্যাশা করে) আমি বিওএম-কম পদ্ধতির প্রস্তাব দেব ।

উইকিপিডিয়ায় কয়েকটি প্রধানত মাইক্রোসফ্ট সফ্টওয়্যার উল্লেখ করেছে যা একটি বিওএমকে জোর করে এবং প্রত্যাশা করে, তবে আপনি যদি তাদের সাথে কাজ না করেন তবে এটি ব্যবহার করবেন না।


28
বিওএমের প্রয়োজনীয় বিস্তৃত সফ্টওয়্যার রয়েছে: এক্সেলকে "এএনএসআই", অর্থাৎ স্থানীয় সামঞ্জস্যতা লোকেলের পরিবর্তে ইউএসএফ -8 হিসাবে কোনও সিএসভি ফাইল সঠিকভাবে সনাক্ত করতে একটি বিওএমের প্রয়োজন। (তবে এক্সেল এ জাতীয় ফাইল সংরক্ষণের সময়ও অদ্ভুত কাজ করে , তাই আমরা ব্যবহারকারীরা যদি আমাদের এক্সেল দিয়ে ফাইলটি খুলতে চান তবে সিএসভি এক্সপোর্টের পরিবর্তে আমাদের "রিয়েল" এক্সেল এক্সপোর্ট ব্যবহার করার পরামর্শ
দিই

21
@ হাইঞ্জি আমি অনেক আগে জানলাম যে সিএসভি এবং এক্সেলের সাথে কাজ করার সময় আপনি সত্যিই জিততে পারবেন না। এটি কেবল একটি লস সিএসভি-পাঠক। সাধারণ ব্যবহারকারীরা যা প্রত্যাশা করে তা খুব খারাপ।
পাইপ

9
@ ভু: ইউটিএফ -8 এর জন্য একটি বিওএমের প্রয়োজনীয়তা অবশ্যই " প্রয়োজনীয় নয় বা প্রস্তাবিত নয় " বিবেচনা করে মানটিকে লঙ্ঘন করে ।
18:58

12
@ উত্সাহক: এমটিএস-ডস এবং উইন্ডোজ সিস্টেমে ইউটিএফ -8 ব্যতীত অন্য এনকোডিংগুলিতে লিগ্যাসি পাঠ্য ফাইলগুলির একটি বড় ভিত্তি রয়েছে। গুণমানের অ্যাপ্লিকেশনগুলি কোনও ব্যবহারকারীকে কোনও টেক্সট ফাইলটি খোলার সময় কীভাবে এনকোড করা হয় তা নির্দিষ্ট করার অনুমতি দেয় তবে প্রায়শই একটি "অটো" বিকল্প অন্তর্ভুক্ত করে। যদি কোনও ব্যবহারকারী "ইউটিএফ -8" নির্বাচন করে, একটি ইউটিএফ -8 ফাইলটি বিওএম সহ বা না ছাড়াই সঠিকভাবে খোলা হবে। যদি কোনও ব্যবহারকারী "অটো" নির্বাচন করেন তবে কিছু ইউটিএফ -8 ফাইলের বিওএম নেই এমন কিছু অন্য এনকোডিং ব্যবহার করে ভুল পরিচয় দেওয়া হতে পারে। আমি নিশ্চিত নই যে কেউ কোনও অ্যাপ্লিকেশনটি আলাদাভাবে কী করবে বলে আশা করে, যেহেতু "ভুল পরিচয়" থাকা ফাইলগুলি বিট-বিট বিট অভিন্ন হতে পারে ...
সুপারক্যাট

7
@ ভু: এটি বিওএম অবৈধ যেখানে অন্যান্য অনেক ফর্ম্যাট-নির্দিষ্ট প্রয়োজনীয়তার সাথে দ্বন্দ্ব বোধ করে। উদাহরণস্বরূপ, #!অবৈধ হওয়ার আগে একটি বিওএম সহ শেল স্ক্রিপ্ট । সর্বোপরি ইউটিএফ -8 এ একটি বিওএমকে "অনুমতি দেওয়া হয়, যখন কোনও বিন্যাস- / অ্যাপ্লিকেশন-নির্দিষ্ট প্রয়োজনীয়তা এটিকে নিষিদ্ধ করে না", "অনুমোদিত" নয় এবং এগুলি ব্যবহার করা উচিত নয়। মানদণ্ডগুলি অবশ্যই করা উচিত নয় সম্পর্কে পরিষ্কার।
আর ..

8

এএফআইকে এখনও কোনও বিস্তৃত কনভেনশন নেই, যদিও অবশ্যই ইউটিএফ -8 এখন সাধারণত গৃহীত হয়।

বিওএম একটি ভয়াবহ নিদর্শন:

এটি অদৃশ্য (শূন্য-প্রস্থের স্থান)।

কিছু সফ্টওয়্যার প্রথম কলামের নামটিতে কেবল অক্ষরগুলি না রেখে বিভক্ত হতে পারে তবে সামনে সেই বিস্ময়কর বিওএম।

শিরোনামের লাইনটি প্রথম মানকে কলুষিত করে এমন মান রেখাগুলির জন্য অনুলিপি করা হতে পারে।

স্থানীয় উইন্ডোজ মেশিন এবং ইউটিএফ -8 দ্বারা ব্যবহৃত একটি এএনএসআই এনকোডিংগুলির মধ্যে পার্থক্য করার জন্য এটি কেবল কয়েকটি উইন্ডোজ সফ্টওয়্যার দ্বারা প্রয়োজনীয়। নোটপ্যাড, এক্সেল

তাই দুঃখজনক বিষয় হ'ল বিওএমকে সমর্থন করা উচিত। Optionচ্ছিক হতে পারে।

ফাইলগুলির জন্য একটি নামকরণ স্কিম ব্যবহার করুন (...- utf8.txt, ...- utf8bom.txt)।


অনেক ক্ষেত্রে আমরা রফতানি বিকল্প হিসাবে এইচটিএমএল ব্যবহার করতে পারি । এটি ফাইলটিতে এনকোডিং সেট করতে দেয়। একটি অতিরিক্ত বৈশিষ্ট্য হ'ল সারি এবং কোষগুলির পটভূমি / অগ্রভাগের রঙ। যা রফতানির গুণমানকে আরও বাড়িয়ে তোলে।


15
"রফতানির গুণমানকে আরও বাড়িয়ে তোলে" ফর্ম্যাট করা কিনা ফাইলের উদ্দেশ্যে ব্যবহারের উপর নির্ভরশীল। সিএসভি প্রায়শই একটি সাধারণ মেশিন পঠনযোগ্য ফর্ম্যাট হিসাবে ব্যবহৃত হয় এবং প্রাপককে পার্স এইচটিএমএল তৈরি করা সেই ক্ষেত্রে একটি বড় অসুবিধা হবে ।
আইএমএসওপি

5
আপনি যদি নামকরণের পরিকল্পনাটি বেছে নিচ্ছেন তবে শ্রোতাদের মনে রাখবেন। -utf8-windows.csvভাল. কম্পিউটারের প্রসঙ্গে উইন্ডোজ কী তা প্রায় প্রত্যেকেই জানেন তবে একটি বাইট অর্ডার মার্ক কী তা খুব কম ব্যবহারকারীই জানেন।
MSalters

2
@ ডেভিস্লোর হ্যাঁ যদি এটি একটি বিস্তৃতভাবে পরিচিত জ্ঞাত মান হয়। অন্যথায় tschüßআবর্জনা থাকার বিষয়ে ত্রুটি সম্পর্কিত প্রতিবেদনগুলি tschüßলেখা উচিত ছিল। স্ট্যাকওভারফ্লোতে অনেক আইটি ত্রুটি এনকোডিং সম্পর্কে। শেষ ব্যবহারকারীরাও সমস্যায় পড়বেন।
জোপ এগজেন

3
@ জোপজেগেন ঠিক কোন সম্প্রদায়ের "ব্যাপকভাবে পরিচিত জ্ঞাত মান"? আমি এখন প্রায় 10 বছর ধরে সফটওয়্যার উন্নয়ন করছেন করছি এবং আমি যে কখনো দেখিনি - এমনকি না উইন্ডোজ, এবং অবশ্যই লিনাক্স বা ওএসএক্স যেখানে আপনি প্রায় সবসময় UTF-8 সাথে মোকাবিলা নয়।
কিউবিক

1
@ জাস্টিনটাইম হ্যাঁ কয়েক বছর আগে থেকেই, তবে এর আগে নয়। এমএস বিকাশকারীরা তেমন খারাপ নয় (পসিক্স সম্মতি, এখন ইউটিএফ -8 সমর্থন)।
জোপ এগজেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.