কীভাবে অক্টাল সিকোয়েন্সগুলি utf-8 পাঠ্যে পরিবর্তন করতে হয়


9

আমি যখন উইন্ডোজ থেকে নন-এস্কি পাঠ্যটি অনুলিপি করি এবং ইম্যাক্সে আটকান, এটি একটি অক্টাল ক্রম হিসাবে দেখায়। উদাহরণস্বরূপ, আমি যদি ইমাক্সে paste পেস্ট করি তবে এটি 344 ডলার হিসাবে দেখাবে।

আমি Emacs এ ফিরে আসতে Cq 344 টাইপ করতে পারতাম। এটি বিরক্তিকর, তবে যদি কেবল একটি চরিত্র থাকে তবে তা সহনীয়। তবে যদি অনেকগুলি অক্ষর অষ্টক পালানোর অনুক্রমগুলিতে রূপান্তরিত হয় তবে সমস্ত অঞ্চলের অভ্যন্তরে রূপান্তর করতে কোনও অঞ্চলে কিছু কমান্ড চালানো সুবিধাজনক হবে। ইতিমধ্যে এমন আদেশ আছে? যদি তা না হয় তবে আপনি এটি করতে কোনও ফাংশন কীভাবে লিখবেন?

[আমি আমার ডিফল্ট কোডিং সিস্টেমটিকে আমার .emacs ফাইলটিতে utf-8 এ সেট করেছি এবং আমি উইন্ডোজ এবং লিনাক্সে একই .emacs ফাইলটি ব্যবহার করি। তবে সমস্যাটি কেবল তখনই ঘটে যখন উইন্ডোজ অ্যাপ্লিকেশন থেকে ইম্যাক্সে অনুলিপি করা হয়। ইমাস থেকে অন্য উইন্ডোজ অ্যাপ্লিকেশনে অনুলিপি করা ভাল কাজ করে]]


1
আমি মনে করি যে আপনি যা চান তা revert-buffer-with-coding-system(এটি ডকুমেন্টেশন দেখুন)। ইমাকস চরিত্রগুলি এইভাবে দেখায় কারণ আপনি এগুলি এমন পরিবেশ থেকে অনুলিপি করেছেন যা বিভিন্ন কোডিং সিস্টেমে ছিল (এএনএসআই তথাকথিত উচ্চ ASCII অক্ষরের সাথে ল্যাটিনকে ডায়ারিকটিক্স সহ রেন্ডার হিসাবে ব্যবহৃত হয়েছিল) ধরে নিয়েছিল তবে আপনার বাফার অবশ্যই ইউটিএফ -8 এর মতো কিছু ব্যবহার করবে (এর জন্য উচ্চ বিটস সেট সহ এএসসিআইআই অক্ষরগুলির কোনও অর্থ নেই, অর্থাত্ অবৈধ)
wvxvw

1
অথবা, এমনকি এমনকি set-clipboard-coding-systemC-h a coding-systemএই গ্রুপে অন্যান্য ফাংশনগুলি কী উপলব্ধ তা দেখার চেষ্টা করুন ।
wvxvw

আপনি যে 344 ডলারটি দেখছেন তা হ'ল একটি কনফিগারেশন সমস্যার ফল। এটিকে "স্থির" করার আদেশের পরিবর্তে, কেন আপনি এটি প্রথম স্থানে পেয়েছেন তা খতিয়ে দেখা উচিত। উদাহরণস্বরূপ শুরু করুন emacs -Qএবং যদি আপনি ইতিমধ্যে সমস্যাটি দেখতে পান M-x report-emacs-bug,।
স্টেফান

@ স্টেফান কখনও কখনও, "আপনি এটি কেন পান" সুস্পষ্ট, তবে এটি আপনাকে সত্যের পরে ঠিক করতে সহায়তা করবে না। উদাহরণস্বরূপ, এর ফলস্বরূপ আমার কাছে এই সমস্যাটি ছিল insert-file-literally(এবং ফাইলটি পূর্বাবস্থায় ফেরানো বা মুছতে / পুনরায় সন্নিবেশ করতে খুব দেরি হয়েছিল)।
টি ভেরন

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

উত্তর:


4

এটি আমার .emacs ফাইলটির আপত্তিজনক অংশটি দেখা দিয়েছে (set-selection-coding-system 'utf-8)। আমি একবার এই লাইনটি সরিয়ে দিলে, ইমাক্স প্রত্যাশার সাথে আচরণ করে।


2

একবার এটি তৈরি:

(defun umlaute ()
  "Fix wrongly inserted characters, commonly from pasting. "
  (interactive "*")
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward (concat "\\\344\\|"(list 228)) nil 1)
      (replace-match "ä"))
    (goto-char (point-min))
    (while (re-search-forward (concat "\\\304\\|"(list 196)) nil t 1)
      (replace-match "Ä"))
    (goto-char (point-min))
    (while (re-search-forward (concat "\\\366\\|"(list 246)) nil t 1)
      (replace-match "ö"))
    (goto-char (point-min))
    (while (re-search-forward (concat "\\\326\\|"(list 214)) nil t 1)
      (replace-match "Ö"))
    (goto-char (point-min))
    (while (re-search-forward (concat "\\\374\\|"(list 252)) nil t 1)
      (replace-match "ü"))
    (goto-char (point-min))
    (while (re-search-forward (concat "\\\334\\|"(list 220)) nil t 1)
      (replace-match "Ü"))
    (goto-char (point-min))
    (while (re-search-forward (concat "\\\337\\|"(list 223)) nil t 1)
      (replace-match "ß"))
    (goto-char (point-min))
    (while (re-search-forward "\\\201" nil t 1)
      (replace-match ""))))

https://launchpad.net/sx-emacs-werkstatt এ Misc-utils.el থেকে

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