ইউনিকোড ইউটিএফ -8 ইউনিকোড হিসাবে কীভাবে প্রদর্শন করবেন?


12

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

'ডিউস' নাম অনুসারে এই প্রথম বুদ্ধিজীবী গোয়েন্দা তথ্য প্রকাশ করা যেতে পারে; সেকেন্ড, প্রতিক্রিয়া বিজ্ঞাপন থেকে প্রাপ্ত।

ইমাসে এটির মতো দেখায়:

এখানে চিত্র বর্ণনা লিখুন

এটি কেবল ইমাসে ঘটে। অন্যান্য সম্পাদকরা সঠিকভাবে পাঠ্যটি দেখান। আমি কিভাবে এই সমস্যা ঠিক করতে পারবো?


আপডেট 1

যদি আমি কল করে revert-buffer-with-coding-systemনির্বাচন করি utf-8তবে ফাইলটি সঠিকভাবে পড়ুন। সুতরাং, গিলস যেমন সঠিকভাবে অনুমান করেছেন, এমাক্স ফাইল এনকোডিং সনাক্ত করছে না। আমি যদি ; -*- coding: utf-8 -*-ফাইলটিতে কোডটি যুক্ত করি তবে ইমাকস এটি খুলবে এবং সঠিকভাবে প্রদর্শন করবে।


আপডেট 2

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


ইমাসগুলি ফাইলটি ইউটিএফ -8 হিসাবে স্বীকৃতি দিচ্ছে না। আপনার init ফাইলের সামগ্রী কী? ইমাসসের কোন সংস্করণ আপনি চালাচ্ছেন? আপনি যদি ইমাস শুরু করেন emacs -qবা দিয়ে এটি কিছু পরিবর্তন করে emacs -Q?
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

অন্যান্য ইউটিএফ -8 ফাইল নিয়ে আমার কোনও সমস্যা নেই। আমি জিএনইউ ইম্যাক্স চালিয়ে যাচ্ছি 24.4.4। emacs -qবা সঙ্গে কোন পার্থক্য emacs -Q
এনভিউন

আহ, যদি এটি অন্যান্য ফাইলগুলির সাথে এবং একটি প্রাথমিক কনফিগারেশনে কাজ করে তবে সম্ভবত কারণটি হ'ল ফাইলটিতে কোথাও অবৈধ ইউটিএফ -8 রয়েছে। ইমাক্স দিয়ে কীভাবে বলতে হয় তা আমাকে দেখতে দিন ...
গিলস

সম্ভবত সম্পর্কিত: emacs.stackexchange.com/q/4100/2264
শন অলরেড

উত্তর:


10

কোনও কারণে ইমাস্যাক্স ফাইলটিকে ইউটিএফ -8 হিসাবে স্বীকৃতি দিচ্ছে না। কমান্ড C-x RET r( revert-buffer-with-coding-system) কমান্ড চালিয়ে এবং প্রবেশ করে আপনি ইমাসকে ফাইলটি ইউটিএফ -8 হিসাবে আবার খুলতে বাধ্য করতে পারেন utf-8

কেন ইমাস এই ফাইলটিকে ইউটিএফ -8 হিসাবে স্বীকৃতি দেয় নি (তবে অন্যটিকে স্বীকৃতি দেয়) সম্ভবত এটিতে কিছু অবৈধ ইউটিএফ -8 ক্রম রয়েছে। এই ক্রমটি এখনও ব্যাকস্ল্যাশ হিসাবে প্রদর্শিত হবে এবং তারপরে escape-glyphইউটিএফ -8 হিসাবে পুনরায় ব্যাখ্যা করার পরে পৃথক বর্ণ ( মুখ) সহ তিনটি অষ্টাল অঙ্ক থাকবে । আপনি C-M-s( isearch-regexp) চালিয়ে এবং সন্ধান করে এই জাতীয় ক্রম অনুসন্ধান করতে পারেন

[^^@-~[:multibyte:]]

যেখানে ^@টাইপ করে প্রবেশ করা হয়েছে C-q C-SPC(এটি চরিত্রটি ^ @ = 0, দ্বি-চরিত্রের ক্রম সারফ্লেক্স-এট নয়; এটি অক্ষরের আগে চরিত্রটি সারফ্লেক্স)।

আপনি কোডিং সিস্টেমের ফাইল ভেরিয়েবল যুক্ত করে ইমাসকে ফাইলটি ইউটিএফ -8 হিসাবে স্বীকৃতি দিতে বাধ্য করতে পারেন : -*-coding: utf-8-*-প্রথম লাইনে এমন কিছু রাখুন, বা ফাইলের শেষের কাছে এই জাতীয় কিছু রাখুন (আপনি #কোনও উপসর্গ দ্বারা প্রতিস্থাপন করতে পারেন , Local Variables:এবং এবং End:অবশ্যই পেছনের কোলন দিয়ে ঠিক এরকম প্রদর্শিত হবে):

# Local Variables:
# coding: utf-8
# End:

ইমাসগুলি এনকোডিংটি চয়ন করে যার ভিত্তিতে ফাইলগুলি বেশ কয়েকটি সেটিংস, প্রাথমিকভাবে ভাষা পরিবেশ এবং ভেরিয়েবল auto-coding-alistএবং এর উপর ভিত্তি করে ব্যাখ্যা করা হয়auto-coding-regexp-alist । যেহেতু চলমান অবস্থায়ও এই ফাইলটি নিয়ে আপনার একই সমস্যা রয়েছে emacs -Q, তাই আমি মনে করি যে এটি সেটিংগুলির সাথে সমস্যা নয়, তবে ফাইল সামগ্রীতে।


যদি আমি কোডিং সিস্টেম ফাইল পরিবর্তনশীল ছাড়া ফাইল খোলার (অর্থাত কখন ফাইলটি প্রদর্শন ভুলভাবে) এবং Regex অনুসন্ধান চালানোর জন্য, আমার সব \342, \200, \230, ইত্যাদি নির্বাচিত হয়। তবে আমি যদি এটি "সঠিকভাবে" (কোডিং ভেরিয়েবলটি ব্যবহার করে) খুলি, তবে কোনও অনুসন্ধানের ফলাফল প্রদর্শিত হবে না।
এনভোগান

নিবন্ধন করুন তারপরে আমি বুঝতে পারি না যে অন্যরা যখন (বিশেষত এর অধীনে emacs -Q) থাকে তখন এই ফাইলটি কেন ইউটিএফ -8 হিসাবে স্বীকৃতি পায় না ।
গিলস 'অশুভ হওয়া বন্ধ করুন'

1

বিওএম সম্পর্কে প্রশ্নের উত্তর দিতে দেরি হয়ে গেছে, তবে আমি এটি কোনওভাবেই করব।

বাইট অর্ডার চিহ্ন (বিওএম) একটি তিনটি বাইট sequ xef ef xbb \ xbf এর অনুক্রম যা কোনও ফাইলের শুরুতে, সিস্টেম এবং অ্যাপ্লিকেশনগুলিকে নির্দেশ করে যে সামগ্রীগুলি ইউটিএফ -8 হিসাবে এনকোড করা আছে। যথাযথভাবে তারা মেটাডেটা, বিষয়বস্তুর অংশ হিসাবে বিবেচনা করা হয় না।

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


-1

শুধুমাত্র ইউনিক্স-মতো সিস্টেমের জন্য।

অনেক ক্ষেত্রে ~ / .bashrc ~ / bash_profile এ সরল এনকোডিং সংজ্ঞা

LANG=en_EN.UTF8

সঙ্গে সম্পন্ন

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

~ /। প্রোফাইলে আপনার সমস্যাটি সমাধান করা উচিত।

PS এই সংশোধনীর পরে পরিবর্তনগুলি দৃশ্যমান হওয়ার জন্য আপনাকে আপনার সেশনে পুনরায় যুক্ত করতে হবে।


আপনি যা বলছেন তা কার্যকর হতে পারে, এটি এই প্রশ্নের উত্তর দিতে উপস্থিত হবে না, কারণ সমস্যাটি কেবলমাত্র কিছু utf-8 ফাইল নিয়ে।
জিনপিয়েরে

মনে করুন কনফিগারেশন ফাইলগুলিতে কঠোর এনকোডিং সংজ্ঞায়নের পরে এই সমস্যাটি সমস্ত ফাইলের জন্য চিরতরে শেষ হয়ে যেতে পারে :-)
অলিওথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.