Escrevi um documento de remarcação norueguês:
$ file brukerveiledning.md
brukerveiledning.md: UTF-8 Unicode text
Eu o converti para HTML usando o markdown
comando:
$ markdown > brukerveiledning.html < brukerveiledning.md
$ file brukerveiledning.html
brukerveiledning.html: UTF-8 Unicode text
No entanto, o Firefox insiste em usar a codificação "windows-1252", quebrando os caracteres não ASCII. Tentei definir a alteração da codificação de texto de fallback de "Padrão para o local atual" (que aqui no Reino Unido deve ser ISO-8859-1 ou UTF-8) para "Europa Central, ISO", "Europa Central, Microsoft" "e" Outros (incl. Europa Ocidental) ". Nenhuma delas pode exibir æ, ø e å. Não há opções Unicode. Eu também tentei mudar intl.fallbackCharsetList.ISO-8859-1
no about: config para vários valores como utf8
, utf-8
, iso-8859-1
, sem sorte.
Usando este markdown
pacote:
$ pacman --query --owns "$(which markdown)"
/usr/bin/markdown is owned by markdown 1.0.1-6
e este local:
$ 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=
Eu tentei perguntar por uma solução no markdown
nível de comando, mas que foi rejeitada.
åæâéè
e abri-o no firefox. A saída era lixo:åæâéè
. No entanto, se eu adicionar<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ao topo, ele sai corretamente. Não tenho certeza de como você faria isso para um arquivo .md.Respostas:
Atualização: isso foi corrigido desde o Firefox 66
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66#HTML
Informação histórica de 2016
O raciocínio por trás desse comportamento parece ser descrito nos bugs do Mozilla 815551 ( detecção automática de UTF-8 por padrão) e 1071816 (suporte ao carregamento de arquivos de texto / sem formatação BOMless UTF-8 do arquivo: URLs)
Pelo que entendi, basicamente se resume a " deve-se sempre especificar a codificação, pois a detecção não é confiável ".
charset
noContent-Type
cabeçalho<meta charset="utf-8" />
Os desenvolvedores da Mozilla parecem estar abertos para um patch que adiciona uma configuração de preferência; portanto, um dia pode ser possível abrir documentos UTF-8 locais sem BOM no Firefox.
fonte
A definição da codificação de fallback para UTF-8 no Firefox foi deliberadamente bloqueada - consulte bugzilla.mozilla.org/show_bug.cgi?id=967981#c4.
Duas maneiras de contornar isso que eu tenho visto são:
1] Aplique alguns patches triviais à fonte e construa o Firefox você mesmo para adicionar uma opção Unicode [UTF-8] ao menu suspenso Preferências | Conteúdo | Fontes e cores | Avançadas | "Codificação de texto de fallback".
2] Run a um local [Apache] httpd servidor, e configurar um servidor virtual baseada em Nome,
utfx
para os utf-8 arquivos codificados no diretório/my/utf-8/files
. Um cabeçalho http utf-8 charset pode ser gerado, o que o Firefox reconhecerá e exibirá o arquivo como codificado em UTF-8. Obviamente, a codificação real do arquivo deve ser UTF-8!a) /etc/httpd/httpd.conf - adicione:
(Re) inicie o servidor -
apachectl restart
ouapachectl graceful
.b) / etc / hosts - adicione o nome de domínio para acessar os arquivos codificados utf-8:
As informações do tipo de conteúdo enviadas pelo servidor podem ser verificadas com wget -S <URL>:
para os três tipos de arquivo (testæø, test.txt, test.html).
A saída deve ser:
c) about: config - adicione novo | Boolean:
em seguida, basta entrar
utfx
na barra de endereços do Firefox para obter a lista de arquivos.fonte
Como eu comentei na sua pergunta, eu estava lutando para obter o mesmo com o objetivo de exibir corretamente o html parcial (a codificação é conhecida, mas não há meta tag para codificação) do Mutt no Firefox pelo Mailcap.
No final, descobri um comando que funciona e que também pode ajudá-lo:
uconv --add-signature -f %{charset} -t UTF-8 %s | sponge %s && firefox -new-tab %s & sleep 5
Descobri que quando o arquivo codificado em UTF-8 contém BOM, o Firefox assume que é UTF-8. Então, eu usei o
uconv
comando para adicionar a assinatura da lista técnica. Suponha que esse%{charset}
seja o conjunto de caracteres de entrada e%s
seja o nome do arquivo. Asponge
ferramenta (domoreutils
pacote) ajuda a alterar o arquivo no local esleep
é apenas para que o Mutt não exclua o arquivo antes que o Firefox termine de carregá-lo.Não encontrei nenhuma outra opção para definir uma codificação de fallback no Firefox.
fonte
Se definir o fallback apenas para arquivos offline, como UTF-8, for suficiente, você poderá acessar
about:config
e definir o valor deintl.charset.fallback.utf8_for_file
comotrue
.( fonte )
fonte
Uma solução simples é produzir um arquivo HTML completo com uma declaração de codificação :
Encurtado (menos explícito e produz avisos):
fonte