Saya telah menulis dokumen penurunan harga Norwegia:
$ file brukerveiledning.md
brukerveiledning.md: UTF-8 Unicode text
Saya telah mengonversinya ke HTML menggunakan markdown
perintah:
$ markdown > brukerveiledning.html < brukerveiledning.md
$ file brukerveiledning.html
brukerveiledning.html: UTF-8 Unicode text
Namun, Firefox bersikeras menggunakan pengkodean "windows-1252", memecah karakter non-ASCII. Saya telah mencoba mengatur mengubah penyandian teks fallback dari "Default for Current Locale" (yang di sini di Inggris harus ISO-8859-1 atau UTF-8) menjadi "Eropa Tengah, ISO", "Eropa Tengah, Microsoft ", dan" Lainnya (termasuk Eropa Barat) ". Tak satu pun dari ini dapat menampilkan æ, ø dan å. Tidak ada opsi Unicode. Saya juga mencoba mengubah intl.fallbackCharsetList.ISO-8859-1
di about: config untuk berbagai nilai seperti utf8
, utf-8
, iso-8859-1
, tidak berhasil.
Menggunakan markdown
paket ini :
$ pacman --query --owns "$(which markdown)"
/usr/bin/markdown is owned by markdown 1.0.1-6
dan lokal ini:
$ 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=
Saya mencoba untuk meminta solusi di markdown
tingkat perintah, tetapi itu ditolak.
åæâéè
dan membukanya di firefox. Output sampah:åæâéè
. Namun, jika saya tambahkan<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ke atas, hasilnya benar. Tidak yakin bagaimana Anda akan melakukan ini untuk file .md.Jawaban:
Pembaruan: ini sudah diperbaiki sejak Firefox 66
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66#HTML
Informasi historis mulai tahun 2016
Alasan di balik perilaku ini tampaknya dijelaskan dalam Mozilla bugs 815551 (Autodetect UTF-8 secara default) dan 1071816 (Dukungan memuat BOMless UTF-8 teks / file biasa dari file: URL)
Sejauh yang saya mengerti pada dasarnya bermuara pada " orang harus selalu menentukan pengkodean karena deteksi terlalu tidak dapat diandalkan ".
charset
diContent-Type
Header<meta charset="utf-8" />
Mozilla devs tampaknya terbuka untuk tambalan yang menambahkan pengaturan preferensi, jadi suatu hari dimungkinkan untuk membuka dokumen UTF-8 BOM-kurang lokal di Firefox.
sumber
Menyetel penyandian fallback ke UTF-8 di Firefox telah sengaja diblokir - lihat bugzilla.mozilla.org/show_bug.cgi?id=967981#c4.
Dua cara untuk mengatasi hal ini adalah:
1] Terapkan beberapa tambalan sepele ke sumber dan buat Firefox sendiri untuk menambahkan opsi Unicode [UTF-8] ke Preferensi | Konten | Fon & Warna | Tingkat Lanjut |
2] Jalankan server httpd [Apache] lokal, dan atur Server Virtual berbasis Nama
utfx
,, untuk file yang dikodekan utf-8 dalam direktori/my/utf-8/files
. Header http utf-8 kemudian dapat dibuat, yang akan dikenali dan ditampilkan oleh Firefox sebagai file yang dikodekan UTF-8. Tentu saja, penyandian file yang sebenarnya harus UTF-8!a) /etc/httpd/httpd.conf - tambahkan:
(Re) mulai server -
apachectl restart
atauapachectl graceful
.b) / etc / hosts - tambahkan nama domain untuk mengakses file yang dikodekan utf-8:
Info tipe konten yang dikirim oleh server dapat diperiksa dengan wget -S <URL>:
untuk ketiga jenis file (testæø, test.txt, test.html).
Outputnya harus:
c) tentang: config - tambahkan Baru | Boolean:
kemudian cukup masukkan
utfx
di bilah alamat Firefox untuk mendapatkan daftar file ..sumber
Seperti yang telah saya komentari dalam pertanyaan Anda, saya berjuang untuk memperoleh hal yang sama dengan tujuan menampilkan html parsial dengan benar (penyandian diketahui tetapi tidak ada meta tag untuk penyandian) dari Mutt di Firefox melalui Mailcap.
Pada akhirnya saya telah menemukan perintah yang berfungsi, dan yang dapat membantu Anda juga:
uconv --add-signature -f %{charset} -t UTF-8 %s | sponge %s && firefox -new-tab %s & sleep 5
Saya telah menemukan bahwa ketika file yang disandikan UTF-8 Anda mengandung BOM, Firefox kemudian menganggapnya UTF-8. Jadi saya telah menggunakan
uconv
perintah untuk menambahkan tanda tangan BOM. Asumsikan itu%{charset}
adalah input charset dan%s
nama file. Thesponge
alat (darimoreutils
paket) membantu mengubah inplace file dansleep
hanya sehingga Mutt tidak menghapus file sebelum Firefox selesai loading itu.Saya belum menemukan opsi lain untuk mengatur penyandian fallback di Firefox.
sumber
Jika mengatur fallback hanya untuk file offline, ke UTF-8, cukup untuk Anda, maka Anda dapat pergi ke
about:config
dan mengatur nilaiintl.charset.fallback.utf8_for_file
untuktrue
.( sumber )
sumber
Solusi sederhana adalah menghasilkan file HTML lengkap dengan deklarasi penyandian :
Dipendekkan (kurang eksplisit dan menghasilkan peringatan):
sumber