ফায়ারফক্সে ইউটিএফ -8 এ ফ্যালব্যাক এনকোডিং কীভাবে সেট করবেন?


12

আমি একটি নরওয়েজিয়ান মার্কডাউন ডকুমেন্ট লিখেছি:

$ file brukerveiledning.md
brukerveiledning.md: UTF-8 Unicode text

markdownকমান্ডটি ব্যবহার করে আমি এটি এইচটিএমএল রূপান্তর করেছি :

$ markdown > brukerveiledning.html <  brukerveiledning.md 
$ file brukerveiledning.html 
brukerveiledning.html: UTF-8 Unicode text

তবে, ফায়ারফক্স "উইন্ডোজ -১২২২" এনকোডিংটি ব্যবহারের জন্য জোর করে, নন-এএসসিআইআই অক্ষরগুলি ভেঙে দেয়। আমি "ডিফল্ট ফর কারেন্ট লোকাল" (যা এখানে যুক্তরাজ্যে আইএসও -8859-1 বা ইউটিএফ -8 হওয়া উচিত) থেকে "সেন্ট্রাল ইউরোপীয়, আইএসও", "সেন্ট্রাল ইউরোপীয়, মাইক্রোসফ্ট" এ ফ্যালব্যাক পাঠ্য এনকোডিংটি সেট করার চেষ্টা করেছি ", এবং" অন্যান্য (সহ পশ্চিমী ইউরোপীয়) " এগুলির কোনওটিই æ, ø এবং display প্রদর্শন করতে পারে না å কোনও ইউনিকোড বিকল্প নেই। আমিও পরিবর্তন চেষ্টা করেছি intl.fallbackCharsetList.ISO-8859-1কনফিগ করার জন্য বিভিন্ন মান পছন্দ: সম্পর্কে utf8, utf-8, iso-8859-1কোন ভাগ্য সঙ্গে।

এই markdownপ্যাকেজটি ব্যবহার করে :

$ pacman --query --owns "$(which markdown)"
/usr/bin/markdown is owned by markdown 1.0.1-6

এবং এই স্থানীয়:

$ locale 
LANG=en_GB.utf8
LC_CTYPE="en_GB.utf8"
LC_NUMERIC="en_GB.utf8"
LC_TIME="en_GB.utf8"
LC_COLLATE="en_GB.utf8"
LC_MONETARY="en_GB.utf8"
LC_MESSAGES="en_GB.utf8"
LC_PAPER="en_GB.utf8"
LC_NAME="en_GB.utf8"
LC_ADDRESS="en_GB.utf8"
LC_TELEPHONE="en_GB.utf8"
LC_MEASUREMENT="en_GB.utf8"
LC_IDENTIFICATION="en_GB.utf8"
LC_ALL=

আমি কমান্ড স্তরে সমাধানের জন্য জিজ্ঞাসা করার চেষ্টা করেছি markdown, তবে তা প্রত্যাখ্যান করা হয়েছিল।


ফায়ারফক্স মেনু থেকে দর্শন> পাঠ্য এনকোডিং> ইউনিকোড সেট করার বিষয়ে কী?
পল নর্ডিন

@ পলনর্ডিন এটি একটি পৃষ্ঠার জন্য এটি করার একটি ভাল উপায় (আমি ভুলে গিয়েছিলাম যে মেনুটি তখনও বিদ্যমান ছিল যেহেতু তারা এটি ডিফল্টরূপে সরিয়ে দিয়েছে!) তবে আমি মনে করি না যে এটি ডিফল্ট সেট করে।
l0b0

1
হ্যাঁ, এটি কেবল অস্থায়ী। আমি মনে করি সমস্যাটি অন্য কোথাও হতে পারে। ফায়ারফক্স ফাইলের ধরণ নির্ধারণ করতে শিরোনাম বা মেটা উপর নির্ভর করে। উদাহরণস্বরূপ, আমি একটি ইউটিএফ -8 ফাইল টেস্ট এইচটিএমএল তৈরি করেছি åæâéèএবং এটি ফায়ারফক্সে খুললাম। আউটপুট আবর্জনা ছিল: åæâéè। তবে আমি যদি <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />শীর্ষে যুক্ত করি তবে এটি সঠিকভাবে আউটপুট দেয়। আপনি কিভাবে এমডি ফাইলের জন্য এটি করবেন তা নিশ্চিত নন।
পল নর্ডিন

আমি ফায়ার ফক্স লুচিং করে মুট থেকে এইচটিএমএল ইমেলটি দেখতে সক্ষম হতে এটি করতেও চাই, এখনও, এইচটিএমএল ফাইল মুটটি মেটা ট্যাগ ছাড়াই utf-8 হয়।
মরিচ_চিকো

উত্তর:


4

আপডেট: এটি ফায়ারফক্স 66 since থেকে স্থির করা হয়েছে

ইউটিএফ-8-এনকোডযুক্ত এইচটিএমএল (এবং সাধারণ পাঠ্য) ফাইলগুলি থেকে লোড করা ফাইল: ইউআরএল এখন <meta charset="utf-8">ইউটিএফ -8 বিওএম ছাড়াই সমর্থিত

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66#HTML


২০১ from সালের informationতিহাসিক তথ্য

এই আচরণের পিছনে যুক্তি মোজিলা বাগ 815551 (ডিফল্টরূপে অটোডেটেক্ট ইউটিএফ -8 ) এবং 1071816 (ফাইল থেকে বিএমবিএস ইউটিএফ -8 টেক্সট / প্লেইন ফাইলগুলি সমর্থন করে: ইউআরএল) বর্ণিত বলে মনে হচ্ছে

আমি যতদূর বুঝতে পেরেছি এটি মূলত "এটিকে এনকোডিং নির্দিষ্ট করা উচিত কারণ সনাক্তকরণ খুব অবিশ্বাস্য। "

  • স্থানীয় নয় এমন সামগ্রীর জন্য আপনার প্রোটোকলটি নেওয়া উচিত। এইচটিটিপি সহ charsetএটি Content-Typeশিরোনামে সঠিক প্রদান করবে
  • এইচটিএমএল বিষয়বস্তুর জন্য আপনি অতিরিক্তভাবে ডকটাইপ ব্যবহার করতে পারেন <meta charset="utf-8" />
  • এবং অন্য যে কোনও কিছুর জন্য একটি বিওএম নির্দিষ্ট করার একমাত্র স্ট্যান্ডার্ড উপায়টি ...

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


4

ফায়ারফক্সে ইউটিএফ -8 এ ফ্যালব্যাক এনকোডিংটি ইচ্ছাকৃতভাবে অবরুদ্ধ করা হয়েছে - দেখুন bugzilla.mozilla.org/show_bug.cgi?id=967981#c4।

এর চারটি উপায় যা আমি দেখছিলাম তা হ'ল:

1] কিছু তুচ্ছ প্রয়োগ প্যাচ উৎস এবং বিল্ড ফায়ারফক্স নিজেকে পছন্দসমূহ একটি ইউনিকোড [হল UTF-8] বিকল্প যোগ করার জন্য | বিষয়বস্তু | হরফ & রঙে | অ্যাডভান্সড | "ফলব্যাক পাঠ্য এনকোডিং" ড্রপ ডাউন মেনু।

2] একটি স্থানীয় [অ্যাপাচি] httpd সার্ভার চালান, এবং utfxডিরেক্টরিতে utf-8 এনকোডযুক্ত ফাইলগুলির জন্য একটি নাম ভিত্তিক ভার্চুয়াল সার্ভার সেট আপ করুন /my/utf-8/files। তারপরে একটি utf-8 চারসেট HTTP শিরোনাম উত্পন্ন করা যেতে পারে, যা ফায়ারফক্স ফাইলটিকে ইউটিএফ -8 এনকোড হিসাবে চিহ্নিত করবে এবং প্রদর্শন করবে। অবশ্যই, আসল ফাইল এনকোডিংটি ইউটিএফ -8 হতে হবে!

ক) /etc/httpd/httpd.conf - যুক্ত করুন:

<VirtualHost *:80>
    # This first-listed virtual host is also the default for *:80
    ServerName localhost
    DocumentRoot "/srv/httpd/htdocs"
</VirtualHost>
<VirtualHost *:80>
    ServerName utfx
    DocumentRoot "/my/utf-8/files"
      <Directory "/my/utf-8/files">
          Options Indexes
          Require all granted
      </Directory>
## show UTF-8 characters in file names:
    IndexOptions Charset=UTF-8
## for files with extension html or txt:
    AddCharset UTF-8 txt html
## for extensionless files:
      <Files *>
          ForceType 'text/plain; charset=UTF-8'
      </Files>
      <Files *\.*>
          ForceType None
      </Files>
</VirtualHost>

(পুনরায়) সার্ভারটি শুরু করুন - apachectl restartবা apachectl graceful

খ) / ইত্যাদি / হোস্ট - utf-8 এনকোডযুক্ত ফাইল অ্যাক্সেসের জন্য ডোমেন নাম যুক্ত করুন:

127.0.0.1   utfx

সার্ভারের মাধ্যমে পাঠানো সামগ্রীর ধরণের তথ্যটি উইজেট-এস <URL> দিয়ে পরীক্ষা করা যেতে পারে:

wget -S http://utfx/test{æø,.txt,.html} 2>&1 >/dev/null | grep Content-Type

তিনটি ফাইলের জন্য (testæø, test.txt, test.html)।
আউটপুটটি হওয়া উচিত:

সামগ্রীর ধরণ: পাঠ্য / প্লেইন; চরসেট = utf-8
সামগ্রী-প্রকার: পাঠ্য / প্লেইন; চরসেট = utf-8
সামগ্রী-প্রকার: পাঠ্য / এইচটিএমএল; অক্ষরসেট = UTF-8

গ) সম্পর্কে: কনফিগার - নতুন যোগ করুন | বুলিয়ান:

browser.fixup.domainwhitelist.utfx  "true"

তারপরে utfxফাইল তালিকা পেতে ফায়ারফক্সের ঠিকানা বারে প্রবেশ করুন ..


বাগজিলা লিঙ্কের জন্য +1। সমাধানগুলি সমস্যাটির জন্য দুর্ভাগ্যক্রমে খুব বেশি ওভারকিল।
l0b0

3

আপনার প্রশ্নে আমি যেমন মন্তব্য করেছি আমি মেইলক্যাপের মাধ্যমে ফায়ারফক্সের মট থেকে আংশিক এইচটিএমএল (এনকোডিংটি জানা গেছে তবে এনকোডিংয়ের জন্য কোনও মেটা ট্যাগ নেই) সঠিকভাবে প্রদর্শন করার উদ্দেশ্যে এটি অর্জনের জন্য সংগ্রাম করছি।

শেষ পর্যন্ত আমি একটি কমান্ড খুঁজে পেয়েছি যা কাজ করে এবং যা আপনাকে খুব সাহায্য করতে পারে:

  • uconv --add-signature -f %{charset} -t UTF-8 %s | sponge %s && firefox -new-tab %s & sleep 5

আমি আবিষ্কার করেছি যে যখন আপনার ইউটিএফ -8 এনকোডযুক্ত ফাইলটিতে বিওএম রয়েছে, ফায়ারফক্স তখন এটি ইউটিএফ -8 ধরে নেয়। সুতরাং আমি uconvবিওএম স্বাক্ষর যুক্ত করতে কমান্ডটি ব্যবহার করেছি । ধরুন %{charset}এটি ইনপুট চরসেট এবং %sএটি ফাইলের নাম। sponge(থেকে টুল moreutilsপ্যাকেজ) ফাইল inplace পরিবর্তন সাহায্য করে এবং sleepঠিক তাই করার আগে ফায়ারফক্স এটা লোড করা শেষ যে গাড়ল ফাইল মুছে ফেলবে না।

ফায়ারফক্সে ফ্যালব্যাক এনকোডিং সেট করার জন্য অন্য কোনও বিকল্প আমি খুঁজে পাইনি।


2

যদি কেবল অফলাইন ফাইলগুলির জন্য ফালব্যাক সেট করা হয়, ইউটিএফ -8 এ, আপনার পক্ষে যথেষ্ট, তবে আপনি গিয়ে about:configমানটি সেট করতে intl.charset.fallback.utf8_for_fileপারেন true

( উত্স )


0

একটি সাধারণ কাজের সমাধান একটি এনকোডিং ঘোষণার সাথে একটি সম্পূর্ণ এইচটিএমএল ফাইল উত্পাদন করা হয় :

pandoc --metadata=pagetitle=Brukerveiledning --output=./brukerveiledning.html --standalone --to=html ./brukerveiledning.md

সংক্ষিপ্ত (কম স্পষ্ট এবং সতর্কতা উত্পাদন করে):

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