Ich habe ein norwegisches Abschriften-Dokument geschrieben:
$ file brukerveiledning.md
brukerveiledning.md: UTF-8 Unicode text
Ich habe es mit dem folgenden markdown
Befehl in HTML konvertiert :
$ markdown > brukerveiledning.html < brukerveiledning.md
$ file brukerveiledning.html
brukerveiledning.html: UTF-8 Unicode text
Firefox besteht jedoch darauf, die "Windows-1252" -Codierung zu verwenden und die Nicht-ASCII-Zeichen zu brechen. Ich habe versucht, das Ändern der Fallback-Textcodierung von "Standard für aktuelles Gebietsschema" (in Großbritannien sollte dies entweder ISO-8859-1 oder UTF-8 sein) in "Mitteleuropäisch, ISO", "Mitteleuropäisch, Microsoft" zu ändern "und" Sonstige (einschl. westeuropäische) ". Keine dieser Anzeigen kann æ, ø und å anzeigen. Es gibt keine Unicode-Optionen. Ich habe auch versucht , zu ändern intl.fallbackCharsetList.ISO-8859-1
in about: config auf verschiedene Werte wie utf8
, utf-8
, iso-8859-1
, ohne Glück.
Verwenden dieses markdown
Pakets:
$ pacman --query --owns "$(which markdown)"
/usr/bin/markdown is owned by markdown 1.0.1-6
und dieses Gebietsschema:
$ 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=
Ich habe versucht, auf markdown
Befehlsebene nach einer Lösung zu fragen , diese wurde jedoch abgelehnt.
åæâéè
die diese enthält, und sie in Firefox geöffnet. Der Ausgang war Müll:åæâéè
. Wenn ich es jedoch oben hinzufüge<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
, wird es richtig ausgegeben. Nicht sicher, wie Sie dies für eine MD-Datei tun würden.Antworten:
Update: Dies wurde seit Firefox 66 behoben
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66#HTML
Historische Informationen von 2016
Die Gründe für dieses Verhalten scheinen in den Mozilla-Fehlern 815551 (standardmäßig Autodetect UTF-8) und 1071816 (Unterstützung für das Laden von BOMless UTF-8-Text- / Nur-Dateien aus Datei: URLs) beschrieben zu sein.
Soweit ich weiß, läuft es im Grunde darauf hinaus, " die Codierung sollte immer angegeben werden, da die Erkennung zu unzuverlässig ist ".
charset
imContent-Type
Header liefern<meta charset="utf-8" />
Mozilla-Entwickler sind offenbar offen für einen Patch , der eine Voreinstellung hinzufügt, sodass es eines Tages möglich sein könnte, lokale UTF-8-Dokumente ohne Stückliste in Firefox zu öffnen.
quelle
Das Setzen der Fallback-Codierung auf UTF-8 in Firefox wurde absichtlich blockiert - siehe bugzilla.mozilla.org/show_bug.cgi?id=967981#c4.
Zwei Möglichkeiten, dies zu umgehen, sind:
1] Wenden Sie einige einfache Patches auf die Quelle an und erstellen Sie Firefox selbst, um eine Unicode-Option [UTF-8] im Dropdown-Menü "Einstellungen | Inhalt | Schriftarten & Farben | Erweitert | Fallback-Textcodierung" hinzuzufügen.
2] Führen Sie einen lokalen [Apache] httpd-Server aus und richten Sie einen namensbasierten virtuellen Server
utfx
für die mit utf-8 codierten Dateien im Verzeichnis ein/my/utf-8/files
. Anschließend kann ein http-Header für den utf-8-Zeichensatz generiert werden, der von Firefox erkannt und als UTF-8-codierte Datei angezeigt wird. Natürlich muss die eigentliche Dateicodierung UTF-8 sein!a) /etc/httpd/httpd.conf - füge hinzu:
Starten Sie den Server (neu) -
apachectl restart
oderapachectl graceful
.b) / etc / hosts - Fügen Sie den Domainnamen für den Zugriff auf die mit utf-8 verschlüsselten Dateien hinzu:
Die vom Server gesendeten Informationen zum Inhaltstyp können mit wget -S <URL> überprüft werden:
für die drei Dateitypen (testæø, test.txt, test.html).
Die Ausgabe sollte sein:
c) about: config - add New | Boolean:
Geben Sie dann einfach
utfx
in die Firefox-Adressleiste ein, um die Dateiliste abzurufen.quelle
Wie ich in Ihrer Frage kommentiert habe, hatte ich Mühe, dasselbe mit dem Ziel zu erreichen, teilweise HTML (Codierung ist bekannt, aber es gibt kein Meta-Tag für die Codierung) von Mutt in Firefox über Mailcap korrekt anzuzeigen.
Am Ende habe ich einen Befehl gefunden, der funktioniert und der Ihnen auch helfen kann:
uconv --add-signature -f %{charset} -t UTF-8 %s | sponge %s && firefox -new-tab %s & sleep 5
Ich habe festgestellt, dass Firefox, wenn Ihre UTF-8-codierte Datei Stücklisten enthält, davon ausgeht, dass es sich um UTF-8 handelt. Daher habe ich den
uconv
Befehl zum Hinzufügen der Stücklistensignatur verwendet. Angenommen, dies%{charset}
ist der Eingabe-Zeichensatz und%s
der Dateiname. Dassponge
Tool (aus demmoreutils
Paket) hilft dabei, die Datei an der richtigen Stelle zu ändern, und dassleep
ist nur so, dass Mutt die Datei nicht löscht, bevor Firefox sie vollständig geladen hat.Ich habe keine andere Option gefunden, um eine Fallback-Codierung in Firefox festzulegen.
quelle
Wenn es für Sie ausreicht, den Fallback nur für Offlinedateien auf UTF-8 zu setzen, können Sie zu wechseln
about:config
und den Wert vonintl.charset.fallback.utf8_for_file
auf festlegentrue
.( Quelle )
quelle
Eine einfache Problemumgehung besteht darin , eine vollständige HTML-Datei mit einer Kodierungsdeklaration zu erstellen :
Verkürzt (weniger explizit und erzeugt Warnungen):
quelle