J'ai écrit un document de démarque norvégienne:
$ file brukerveiledning.md
brukerveiledning.md: UTF-8 Unicode text
Je l'ai converti en HTML à l'aide de la markdown
commande:
$ markdown > brukerveiledning.html < brukerveiledning.md
$ file brukerveiledning.html
brukerveiledning.html: UTF-8 Unicode text
Cependant, Firefox insiste sur l'utilisation de l'encodage "windows-1252", brisant les caractères non ASCII. J'ai essayé de définir le changement du codage du texte de secours de "Default for Current Locale" (qui ici au Royaume-Uni devrait être ISO-8859-1 ou UTF-8) en "Central European, ISO", "Central European, Microsoft "et" Autre (incl. Europe occidentale) ". Aucun de ceux-ci ne peut afficher æ, ø et å. Il n'y a pas d'options Unicode. J'ai aussi essayé de changer intl.fallbackCharsetList.ISO-8859-1
dans about: config à diverses valeurs telles que utf8
, utf-8
, iso-8859-1
, sans chance.
Utilisation de ce markdown
package:
$ pacman --query --owns "$(which markdown)"
/usr/bin/markdown is owned by markdown 1.0.1-6
et cette locale:
$ 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=
J'ai essayé de demander une solution au markdown
niveau de la commande, mais cela a été rejeté.
åæâéè
et ouvert dans Firefox. La sortie était garbage:åæâéè
. Cependant, si j'ajoute<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
en haut, il sort correctement. Vous ne savez pas comment procéder pour un fichier .md.Réponses:
Mise à jour: cela a été corrigé depuis Firefox 66
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66#HTML
Informations historiques de 2016
Le raisonnement derrière ce comportement semble être décrit dans les bogues Mozilla 815551 ( Détection automatique UTF-8 par défaut) et 1071816 (Prise en charge du chargement de fichiers texte / simples BOMless UTF-8 à partir d'un fichier: URL)
Pour autant que je comprends, cela se résume à " il faut toujours spécifier l'encodage car la détection est trop peu fiable ".
charset
dans l'en-Content-Type
tête<meta charset="utf-8" />
Les développeurs Mozilla semblent être ouverts pour un correctif qui ajoute un paramètre de préférence, donc un jour il pourrait être possible d'ouvrir des documents UTF-8 locaux sans nomenclature dans Firefox.
la source
La définition du codage de secours sur UTF-8 dans Firefox a été délibérément bloquée - voir bugzilla.mozilla.org/show_bug.cgi?id=967981#c4.
Voici deux façons de contourner ce problème:
1] Appliquez quelques correctifs triviaux à la source et créez vous-même Firefox pour ajouter une option Unicode [UTF-8] dans le menu déroulant Préférences | Contenu | Polices et couleurs | Avancé | "Encodage de texte de secours".
2] Exécutez un serveur httpd [Apache] local et configurez un serveur virtuel basé
utfx
sur le nom pour les fichiers encodés utf-8 dans le répertoire/my/utf-8/files
. Un en-tête http de jeu de caractères utf-8 peut alors être généré, que Firefox reconnaîtra et affichera le fichier au format UTF-8. Bien sûr, l'encodage du fichier doit être en UTF-8!a) /etc/httpd/httpd.conf - ajoutez:
(Re) démarrez le serveur -
apachectl restart
ouapachectl graceful
.b) / etc / hosts - ajoutez le nom de domaine pour accéder aux fichiers encodés en utf-8:
Les informations de type de contenu envoyées par le serveur peuvent être vérifiées avec wget -S <URL>:
pour les trois types de fichiers (testæø, test.txt, test.html).
La sortie doit être:
c) about: config - ajouter New | Boolean:
puis entrez simplement
utfx
dans la barre d'adresse de Firefox pour obtenir la liste des fichiers.la source
Comme je l'ai commenté dans votre question, j'avais du mal à obtenir le même dans le but d'afficher correctement le html partiel (l'encodage est connu mais il n'y a pas de balise META pour l'encodage) de Mutt dans Firefox via Mailcap.
Au final, j'ai trouvé une commande qui fonctionne, et qui peut aussi vous aider:
uconv --add-signature -f %{charset} -t UTF-8 %s | sponge %s && firefox -new-tab %s & sleep 5
J'ai découvert que lorsque votre fichier encodé UTF-8 contient une nomenclature, Firefox suppose alors que c'est UTF-8. J'ai donc utilisé la
uconv
commande pour ajouter la signature de nomenclature. Supposons qu'il%{charset}
s'agit du jeu de caractères d'entrée et%s
du nom de fichier. L'sponge
outil (à partir dumoreutils
package) permet de modifier le fichier en place etsleep
c'est juste pour que Mutt ne supprime pas le fichier avant que Firefox ait fini de le charger.Je n'ai trouvé aucune autre option pour définir un encodage de secours dans Firefox.
la source
Si le réglage de la solution de repli pour uniquement les fichiers hors ligne, UTF-8, est suffisant pour vous, alors vous pouvez aller à
about:config
et définir la valeur deintl.charset.fallback.utf8_for_file
àtrue
.( source )
la source
Une solution simple consiste à produire un fichier HTML complet avec une déclaration d'encodage :
Raccourci (moins explicite et produit des avertissements):
la source