Napisałem norweski dokument przeceny:
$ file brukerveiledning.md
brukerveiledning.md: UTF-8 Unicode text
Przekształciłem go na HTML za pomocą markdown
polecenia:
$ markdown > brukerveiledning.html < brukerveiledning.md
$ file brukerveiledning.html
brukerveiledning.html: UTF-8 Unicode text
Jednak Firefox nalega na użycie kodowania „windows-1252”, łamiąc znaki inne niż ASCII. Próbowałem zmienić kodowanie tekstu zastępczego z „Domyślne dla bieżących ustawień regionalnych” (które tutaj w Wielkiej Brytanii powinno być ISO-8859-1 lub UTF-8) na „Środkowoeuropejski, ISO”, „Środkowoeuropejski, Microsoft ”i„ Inne (w tym zachodnioeuropejskie) ”. Żadne z nich nie może wyświetlać æ, ø i å. Brak opcji Unicode. Próbowałem zostały również zmianę intl.fallbackCharsetList.ISO-8859-1
w about: config na różne wartości podoba utf8
, utf-8
, iso-8859-1
, bez powodzenia.
Korzystanie z tego markdown
pakietu:
$ pacman --query --owns "$(which markdown)"
/usr/bin/markdown is owned by markdown 1.0.1-6
i ta lokalizacja:
$ 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=
I próbował zapytać o rozwiązanie na markdown
poziomie poleceń, ale został odrzucony.
åæâéè
i otworzyłem go w Firefoksie. Wyjście było śmieci:åæâéè
. Jeśli jednak dodam<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
do góry, wyświetla się poprawnie. Nie jestem pewien, jak to zrobić dla pliku .md.Odpowiedzi:
Aktualizacja: zostało to naprawione od Firefox 66
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66#HTML
Informacje historyczne z 2016 r
Powód tego zachowania wydaje się być opisany w błędach Mozilli 815551 ( domyślnie Autodetect UTF-8) i 1071816 (Obsługa ładowania plików tekstowych / zwykłych BOMless UTF-8 z pliku: URL)
O ile rozumiem, w zasadzie sprowadza się to do: „ zawsze należy określać kodowanie, ponieważ wykrywanie jest zbyt niewiarygodne ”.
charset
wContent-Type
nagłówku<meta charset="utf-8" />
Wydaje się, że deweloperzy Mozilli są otwarci na łatkę, która dodaje ustawienie preferencji, więc pewnego dnia może być możliwe otwarcie lokalnych dokumentów UTF-8 bez BOM w Firefoksie.
źródło
Ustawienie kodowania awaryjnego na UTF-8 w Firefoksie zostało celowo zablokowane - patrz bugzilla.mozilla.org/show_bug.cgi?id=967981#c4.
Dwa sposoby obejścia tego, na które patrzyłem, to:
1] Zastosuj kilka prostych poprawek do źródła i sam zbuduj Firefoksa, aby dodać opcję Unicode [UTF-8] do Preferencji | Treść | Czcionki i kolory | Zaawansowane | Menu rozwijane „Fallback Text Encoding”.
2] Uruchom lokalny serwer httpd [Apache] i skonfiguruj Serwer wirtualny oparty
utfx
na nazwie dla plików zakodowanych w katalogu utf-8 w katalogu/my/utf-8/files
. Następnie można wygenerować nagłówek http zestawu znaków utf-8, który Firefox rozpozna i wyświetli plik jako zakodowany w UTF-8. Oczywiście, rzeczywiste kodowanie plików musi być UTF-8!a) /etc/httpd/httpd.conf - dodaj:
(Ponownie) uruchom serwer -
apachectl restart
lubapachectl graceful
.b) / etc / hosts - dodaj nazwę domeny, aby uzyskać dostęp do plików zakodowanych w utf-8:
Informacje o typie treści wysyłane przez serwer można sprawdzić za pomocą wget -S <URL>:
dla trzech typów plików (testæø, test.txt, test.html).
Dane wyjściowe powinny być:
c) about: config - dodaj Nowy | Boolean:
następnie wystarczy wpisać
utfx
w pasku adresu Firefox, aby uzyskać listę plików ..źródło
Jak skomentowałem w twoim pytaniu, starałem się uzyskać to samo w celu poprawnego wyświetlania częściowego HTML (kodowanie jest znane, ale nie ma metatagu do kodowania) z Mutt w Firefox za pośrednictwem Mailcap.
W końcu wymyśliłem polecenie, które działa i które może ci również pomóc:
uconv --add-signature -f %{charset} -t UTF-8 %s | sponge %s && firefox -new-tab %s & sleep 5
Odkryłem, że kiedy plik zakodowany w UTF-8 zawiera BOM, Firefox zakłada, że jest to UTF-8. Więc użyłem
uconv
polecenia, aby dodać podpis BOM. Załóżmy, że%{charset}
jest to wejściowy zestaw znaków i%s
nazwa pliku.sponge
Narzędzie (zmoreutils
pakietu) ułatwia zmianę inplace plików isleep
jest po prostu tak, że Mutt nie usunąć plik przed Firefox kończy załadowaniem.Nie znalazłem żadnej innej opcji ustawiania kodowania awaryjnego w przeglądarce Firefox.
źródło
Jeśli ustawienie zastępcze tylko dla plików offline, na UTF-8, jest dla Ciebie wystarczające, możesz przejść do
about:config
i ustawić wartośćintl.charset.fallback.utf8_for_file
natrue
.( źródło )
źródło
Prostym obejściem jest utworzenie pełnego pliku HTML z deklaracją kodowania :
Skrócony (mniej wyraźny i wyświetla ostrzeżenia):
źródło