উইন্ডোজ 7 ইউটিএফ -8 এবং ইউনিকোড


14

কেউ দয়া করে উইন্ডোজ 7 (প্রো 64-বিট) এ কী পরিবর্তন হয়েছে তা ব্যাখ্যা করতে পারেন?

বিশদ: পূর্বে আমার উইন্ডোজ এক্সপি ছিল এবং সিএসভি ফর্ম্যাটে কিছু অনুবাদ ফাইল (ইউটিএফ -8 এনকোডড) ছিল। আমি নোটপ্যাড এবং এক্সেল উভয় ফন্ট দেখতে সক্ষম হয়েছি। উইন্ডোজ to-তে আপগ্রেড করার পরে, যখন আমি এই ফাইলগুলি খুলি - আমি যা দেখি তা সমস্তই বর্গক্ষেত্র বাক্স (কেবল আপনি জানেন, আমি যদি সেগুলি ব্রাউজারে খুলি - তবে আমি সমস্ত অনুবাদ দেখতে সক্ষম হয়েছি)। আমি যদি এই ফাইলগুলি ইউনিকোডে সংরক্ষণ করি তবে সবকিছু ঠিক আছে বলে মনে হচ্ছে।

তো, ঠিক কী চলছে? উইন্ডোজ 7 কেন ইউনিকোডের সাথে ইউটিএফ -8 এর সাথে নয়?

উত্তর:


30

উইন্ডোজ 7 কেন ইউনিকোডের সাথে ইউটিএফ -8 এর সাথে নয়?

পরিভাষা

ইউনিকোড এবং ইউটিএফ -8 একই ধরণের জিনিস নয়: ইউনিকোড এমন একটি চরিত্র-সেট যা অক্ষরের একটি সেট (একটি প্রতিলিপি) সংজ্ঞায়িত করে এবং সেই অক্ষরের প্রতিটিটির জন্য সংখ্যা (কোড পয়েন্ট) নির্ধারিত করে। ইউটিএফ ‑ 8 হ'ল কয়েকটি এনকোডিংগুলির মধ্যে একটি যা ডিস্কে বা সংক্রমণে ইউনিকোড অক্ষরগুলির একটি প্রবাহকে উপস্থাপন করতে ব্যবহার করা যেতে পারে । ইউনিকোড অক্ষরের একই স্ট্রিমটিকে ইউটিএফ ‑ 16, ইউটিএফ ‑ 32 বা ইউটিএফ ‑ 7 হিসাবে এনকোড করা যেতে পারে।

যাইহোক, নোটপ্যাড অফার আপনি সহ বিকল্পগুলি "এনকোডিং" ANSI, Unicode, Unicode big-endianএবং UTF-8। মাইক্রোসফ্ট বিকাশকারী যারা এটি লিখেছেন তারা ভুল পদ ব্যবহার করেছেন। যখন তারা "ইউনিকোড" বলে থাকে তখন তাদের সম্ভবত সম্ভবত " ইউটিএফ -16 লিটল এন্ডিয়ান " অর্থ হয়। যখন তারা "এএনএসআই" বলে তারা কোড পৃষ্ঠা 1252 (সিপি-1252) বোঝায় ।

মাইক্রোসফ্ট নোটপ্যাড

আমি বিশ্বাস করি যে মাইক্রোসফ্টের নোটপ্যাড ইউটিএফ -16 বাইট অর্ডার চিহ্ন ( বিওএম ) দিয়ে লিখেছেন এবং নোটপ্যাড কোনও পাঠ্য ফাইল পড়ার সময় বিওএম-র সন্ধান করে। বিওএম অ্যাপটিকে বলছে যে ফাইলটি ইউটিএফ -১ is এবং এটি বড়-এন্ডিয়ান বা লিটল-এন্ডিয়ান নয় কিনা তা নির্দেশ করে।

নোটপ্যাড যদি বিওএম খুঁজে না পায় তবে এটি একটি লাইব্রেরি ফাংশন কল করে IsTextUnicode, যা ডেটা দেখায় এবং কী এনকোডিং ব্যবহৃত হয়েছিল তা অনুমান করার চেষ্টা করে। কখনও কখনও (অনিবার্যভাবে) এটি ভুলভাবে অনুমান করে। কখনও কখনও এটি অনুমান করা হয় যে একটি "এএনএসআই" ফাইলটি "ইউনিকোড"। কোড পৃষ্ঠা 1252 হিসাবে কোনও ইউটিএফ -16 বা ইউটিএফ -8 ফাইলটি ব্যাখ্যা করার চেষ্টা করার ফলে এটি ভুল গ্লাইফগুলি প্রদর্শন করতে পারে এবং কিছু 8-বিট মান রেন্ডার করতে গ্লাইফগুলি খুঁজে পেতে অক্ষম হয় - এগুলি স্কোয়ার হিসাবে দেখানো হবে।

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

বাইট অর্ডার মার্কস

ইউনিকোড কনসোর্টিয়াম অনুসারে, বাইট অর্ডার মার্কস (বিওএম) alচ্ছিক। তবে উইন্ডোজ কিছু এনকোডিংয়ের মধ্যে পার্থক্য করতে বিওএম-র উপর নির্ভর করে।

সুতরাং সংক্ষেপে, আপনার ফাইলগুলিতে কোনও কারণে কোনও বিওএমের অভাব রয়েছে? হয়ত আপগ্রেড প্রক্রিয়া চলাকালীন বিওএম হারিয়ে গেছে?

স্কোর হিসাবে প্রদর্শিত মূল ফাইলগুলি এখনও আপনার কাছে থাকলে আপনি সেগুলির একটি হেক্স ডাম্প তৈরি করতে পারেন যাতে সেগুলিতে একটি বিওএম রয়েছে contain


সাধারণ পাঠ্য ফাইলের মান

সমস্যাটি হ'ল কার্যকরভাবে কোনওটি নেই - প্লেইন পাঠ্য ফাইলগুলির জন্য কোনও সার্বজনীন মানক। পরিবর্তে আমাদের কাছে বেশ কয়েকটি ইনকম্প্যাটিবিলাইট এবং অজানা রয়েছে।

  • লাইন-এন্ডিংগুলি কীভাবে চিহ্নিত করা হয়েছে? কিছু প্ল্যাটফর্মগুলি লাইন ফিড (এলএফ) এর পরে ক্যারোল রিটার্ন (সিআর) ব্যবহার করে, কিছু সিআর একা ব্যবহার করে এবং কিছু এলএফ ব্যবহার করে।

  • উপরোক্ত টার্মিনেটর বা বিচ্ছেদকারী কি? এটি একটি ফাইলের শেষে প্রভাব ফেলে এবং এটি সমস্যার কারণ হিসাবে পরিচিত।

  • ট্যাব এবং অন্যান্য নিয়ন্ত্রণ অক্ষরের চিকিত্সা। আমরা ধরে নিতে পারি যে লাইনটি শুরু হওয়ার পরে 8 টি স্ট্যান্ডার্ড চরিত্রের প্রস্থের একাধিকগুলিতে সারিবদ্ধ করার জন্য একটি ট্যাব ব্যবহার করা হয়েছে, তবে সত্যই এটির কোনও নিশ্চিততা নেই। অনেক প্রোগ্রাম ট্যাব অবস্থান পরিবর্তন করতে দেয়।

  • চরিত্র সেট এবং এনকোডিং? এর মধ্যে কোনটি ফাইলের পাঠ্যের জন্য ব্যবহৃত হয়েছে তা নির্দেশ করার জন্য কোনও সর্বজনীন মান নেই। আমাদের নিকটতম একটি বিওএম এর উপস্থিতি সন্ধান করতে হবে যা ইউনিকোডের জন্য ব্যবহৃত এনকোডিংটিকে নির্দেশ করে। বিওএম মান থেকে ফাইলটি পড়া প্রোগ্রামটি ইউটিএফ -8 এবং ইউটিএফ -16 ইত্যাদি ইত্যাদির মধ্যে এবং লিটল-এন্ডিয়ান এবং ইউটিএফ -16 এর বিগ-এন্ডিয়ান ভেরিয়েন্টগুলির মধ্যে পার্থক্য করতে পারে a সিপি-1252 বা কেওআই -8 এর মতো অন্য যে কোনও জনপ্রিয় এনকোডিংয়ে এনকোড করা আছে।

ইত্যাদি। উপরের মেটাডেটার কোনওটিই টেক্সট ফাইলে লেখা নেই - সুতরাং ফাইলটি পড়ার সময় শেষ ব্যবহারকারীকে অবশ্যই প্রোগ্রামটি অবহিত করতে হবে। শেষ ব্যবহারকারীকে কোনও নির্দিষ্ট ফাইলের জন্য মেটাডেটা মানগুলি জানতে হবে বা তাদের প্রোগ্রামটি ভুল মেটাটাটা মান ব্যবহার করবে এমন ঝুঁকি চালাতে হবে।

বুশ ঘটনা লুকিয়ে রেখেছিল

উইন্ডোজ এক্সপি এ চেষ্টা করুন।

  • নোটপ্যাড খুলুন।
  • ফন্টটি অ্যারিয়াল ইউনিকোড এমএসে সেট করুন। (আপনাকে প্রথমে এটি ইনস্টল করতে হবে; আপনি যদি এটি মেনুতে না দেখতে পান তবে "আরও হরফ দেখান" এ ক্লিক করুন))
  • "বুশ ঘটনাটি লুকিয়ে রেখেছিলেন" পাঠ্যটি প্রবেশ করান।
  • চয়ন করুন Save AsEncodingমেনু থেকে , নির্বাচন করুন ANSI
  • নোটপ্যাড বন্ধ
  • ডকুমেন্ট পুনরায় খুলুন (যেমন, ব্যবহার Start, My Recent Documents)।
  • আপনি "বুশ ঘটনাগুলি লুকিয়ে রেখেছেন" এর পরিবর্তে 畂 桳 栠 栠 摩 琠 敨 映 捡 獴 দেখতে পাবে।

এটি চিত্রিত করে যে IsTextUnicodeনোটপ্যাড দ্বারা ব্যবহৃত ফাংশনটি ভুলভাবে অনুমান করেছে যে এএনএসআই (সত্যিকারের কোড পৃষ্ঠা 1252) পাঠ্যটি বিওএম ছাড়াই ইউনিকোড ইউটিএফ -16 এলএল। হিসাবে সংরক্ষণ করা কোনও ফাইলে কোনও বিওএম নেই ANSI

উইন্ডোজ 7

উইন্ডোজ With এর সাথে, মাইক্রোসফ্ট IsTextUnicodeযাতে সামঞ্জস্য হয় যাতে উপরেরটি না ঘটে। কোনও বিওএমের অনুপস্থিতিতে ইউনিকোডের (ইউটিএফ -১LE এলই) তুলনায় এএনএসআই (সিপি 1252) এখন অনুমান করার সম্ভাবনা বেশি। উইন্ডোজ -7 আমি আশা অতএব তুমি আরো বিপরীত সমস্যা হওয়ার সম্ভাবনা: একটি ফাইল 255 তার চেয়ে অনেক বেশী কোড পয়েন্ট সঙ্গে ইউনিকোড অক্ষর ধারণকারী, কিন্তু কোন BOM সঙ্গে, এখন সম্ভাবনা বেশি ANSI হচ্ছে অনুমিত করা হয় - এবং সেইজন্য ভুল প্রদর্শিত।

এনকোডিং সমস্যা প্রতিরোধ করা

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


3
উইকিপিডিয়া অনুসারে : উইন্ডোজ ভিস্তা এবং উইন্ডোজ in-এ [..] ইসটেক্সটিকোনিকোডটি ইউটিএফ -১LE এলএর চেয়ে বাইট-ভিত্তিক এনকোডিং অনুমান করার সম্ভাবনা তৈরি করার জন্য এটি পরিবর্তন করা হয়েছে।
আরজান

হ্যাঁ, নিশ্চিতভাবেই আমরা সেই ফাইলগুলিতে বিওএম রয়েছে যেহেতু আমরা সেই ফাইলগুলি বিওএম দিয়ে তৈরি করি। এটি আকর্ষণীয় যে উইন্ডোজ 7 পুরানো ওএস দ্বারা নির্মিত বিওএম পড়েনি।
শ লে

বিওএম পরিবর্তন হয়নি। এটি হতে পারে যে আপনার ফাইলগুলি বিওএম অনুপস্থিত, তবে এর আগে ডিফল্ট ফর্ম্যাটটি কিছু ইউনিকোড বৈকল্পিক ছিল, যেখানে এটি এখন ASCII। আমার উত্তর দেখুন।
harrymc

@ শা লে: যদি ফাইলটির কোনও বিওএম থাকে তবে উইন্ডোজ Not নোটপ্যাডটি সঠিকভাবে এটি খুলতে হবে, সুতরাং আপনি যে সমস্যাটি বর্ণনা করেছেন তা জ্ঞাত সমস্যাগুলির সাথে খাপ খায় না isTextUnicode। আপনি কি একটি ছোট নমুনা ফাইল তৈরি করতে পারেন যা কোনও বিওএম অন্তর্ভুক্ত এমন কোনও ফাইলের সাথে আপনার সমস্যার চিত্র তুলে ধরে?
রেডগ্রিটিব্রিক

রয়েছে this app can breakহিসাবে একই প্রভাব জন্যBush hid the facts
রিজেন্ট

3

একটি মন্তব্য: আপনি এনকোডিং মেনু ব্যবহার করে এই ফাইলগুলি দেখতে নোটপ্যাড ++ ব্যবহার করতে পারেন ।

ফাইলগুলি সঠিকভাবে প্রদর্শিত হয়ে গেলে সেগুলি সংরক্ষণ করা সঠিক বিওএম যুক্ত করবে।


আমি জানি এই পোস্টটি কিছুটা পুরানো, তবে আমার বর্তমানে উইন 7 এবং নোটপ্যাড ++ বিওএম ছাড়াই ইউটিএফ 8 প্রদর্শন না করার ক্ষেত্রে ইস্যু রয়েছে যখন নোটপ্যাড ++ ভি 5.9.6.2 নিজেই ফাইলগুলি তৈরি করা হয়েছিল তখন।
জেক

@ জ্যাক: নিশ্চিত করুন যে এনকোডিং মেনুতে "বিওএম ছাড়াই ইউটিএফ 8 এ এনকোড" না দিয়ে "ইউটিএফ-এ এনকোড" প্রদর্শিত হবে।
harrymc

1

উইন্ডোজ 10 এ সম্ভব (1903 বিল্ড পরীক্ষা করা)

  1. ভাল এনকোডিং এর সাথে আপনার ফাইল অনুলিপি করুন TXTUTF-8.txtথেকে C:\WINDOWS\SHELLNEW
  2. ইন HKEY_CLASSES_ROOT\.txt\ShellNewনাম দিয়ে একটি নতুন চেইন করতে " FileName"
  3. "এর মান পরিবর্তন FileName" থেকে " TXTUTF-8.txt"

এখন যখন আপনি উইন্ডোজ মেনুটি ব্যবহার করে একটি নতুন টেক্সট ফাইল তৈরি করেন, এটি আপনার TXTUTF-8.txtটেম্পলেট হিসাবে গ্রহণ করবে

সূত্র: https://answers.microsoft.com/fr-fr/windows/forum/all/configurer-lencodage-par-d%C3%A9faut-en-utf-8-dans/9c0358ca-a2b3-43e8-a154- d10c1fe94317

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.