私はノルウェーの値下げ文書を書きました:
$ file brukerveiledning.md
brukerveiledning.md: UTF-8 Unicode text
markdown
コマンドを使用してHTMLに変換しました:
$ markdown > brukerveiledning.html < brukerveiledning.md
$ file brukerveiledning.html
brukerveiledning.html: UTF-8 Unicode text
ただし、Firefoxは「windows-1252」エンコーディングの使用を強く要求し、非ASCII文字を壊します。フォールバックテキストエンコーディングを「現在のロケールのデフォルト」(ここでは英国ではISO-8859-1またはUTF-8のいずれか)から「中央ヨーロッパ、ISO」、「中央ヨーロッパ、Microsoft」に変更する設定を試みました」および「その他(西ヨーロッパを含む)」。これらのどれも、æ、ø、åを表示できません。 Unicodeオプションはありません。また、about:configのintl.fallbackCharsetList.ISO-8859-1
をutf8
、utf-8
、iso-8859-1
などのさまざまな値に変更してみましたが、うまくいきませんでした。
このmarkdown
パッケージを使用:
$ pacman --query --owns "$(which markdown)"
/usr/bin/markdown is owned by markdown 1.0.1-6
そしてこのロケール:
$ 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=
markdown
コマンドレベルでの解決策について、私は 試してみました ですが、拒否されました。
更新:これはFirefox 66以降で修正されています
ファイルからロードされたUTF-8エンコードされたHTML(およびプレーンテキスト)ファイル:
<meta charset="utf-8">
またはUTF-8 BOMなしでURLがサポートされるようになりました
https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/66#HTML
この動作の背後にある理由は、Mozillaのバグ 815551 (デフォルトでUTF-8を自動検出)および 1071816 (ファイルからのBOMless UTF-8テキスト/プレーンファイルのロードをサポート)で説明されているようです:URL)
私が理解している限り、基本的には「検出に信頼性が低すぎるため、常にエンコーディングを指定する必要があります」です。
Content-Type
ヘッダーに正しいcharset
を提供します<meta charset="utf-8" />
Mozilla開発者は パッチ用に開く のように見えるため、設定が追加されるため、ある日、FirefoxでローカルのBOMのないUTF-8ドキュメントを開くことができる場合があります。
FirefoxでフォールバックエンコーディングをUTF-8に設定することは意図的にブロックされています-bugzilla.mozilla.org/show_bug.cgi?id=967981#c4を参照してください。
私がこれまで見てきた2つの方法は次のとおりです。
1]簡単な パッチ をソースに適用し、 ビルドFirefox を自分で適用して、Preferences | Content | Fonts&Colors | Advanced | "FallbackにUnicode [UTF-8]オプションを追加しますテキストエンコーディング」ドロップダウンメニュー。
2]ローカルの[Apache] httpdサーバーを実行し、ディレクトリ/my/utf-8/files
のutf-8エンコードファイル用に名前ベースの仮想サーバーutfx
をセットアップします。次に、utf-8 charset httpヘッダーを生成できます。これにより、FirefoxはファイルをUTF-8エンコードとして認識して表示します。もちろん、実際のファイルエンコーディングはUTF-8でなければなりません!
a)/etc/httpd/httpd.conf-追加:
<VirtualHost *:80>
# This first-listed virtual Host is also the default for *:80
ServerName localhost
DocumentRoot "/srv/httpd/htdocs"
</VirtualHost>
<VirtualHost *:80>
ServerName utfx
DocumentRoot "/my/utf-8/files"
<Directory "/my/utf-8/files">
Options Indexes
Require all granted
</Directory>
## show UTF-8 characters in file names:
IndexOptions Charset=UTF-8
## for files with extension html or txt:
AddCharset UTF-8 txt html
## for extensionless files:
<Files *>
ForceType 'text/plain; charset=UTF-8'
</Files>
<Files *\.*>
ForceType None
</Files>
</VirtualHost>
サーバーを(再)起動します-apachectl restart
またはapachectl graceful
。
b)/ etc/hosts-utf-8エンコードファイルにアクセスするためのドメイン名を追加します。
127.0.0.1 utfx
サーバーから送信されているコンテンツタイプ情報は、wget -S <URL>で確認できます。
wget -S http://utfx/test{æø,.txt,.html} 2>&1 >/dev/null | grep Content-Type
3つのファイルタイプ(testæø、test.txt、test.html)。
出力は次のようになります。
Content-Type:text/plain; charset = utf-8
Content-Type:text/plain; charset = utf-8
Content-Type:text/html; charset = utf-8
c)about:config-New | Booleanを追加:
browser.fixup.domainwhitelist.utfx "true"
次に、Firefoxのアドレスバーにutfx
と入力して、ファイルリストを取得します。
あなたの質問でコメントしたように、FirefoxのMuttからMailcapを介して部分的なhtml(エンコードは既知ですが、エンコード用のメタタグはありません)を正しく表示する目的で同じものを取得するのに苦労していました。
最後に、私は機能するコマンドを見つけました。それはあなたにも役立つかもしれません:
uconv --add-signature -f %{charset} -t UTF-8 %s | sponge %s && firefox -new-tab %s & sleep 5
UTF-8でエンコードされたファイルにBOMが含まれている場合、FirefoxはそれがUTF-8であると想定することを発見しました。そこで、uconv
コマンドを使用してBOM署名を追加しました。と仮定する %{charset}
は入力文字セットであり、%s
はファイル名です。 sponge
ツール(moreutils
パッケージから)はファイルをインプレースで変更するのに役立ち、sleep
は、Firefoxがファイルのロードを完了する前にファイルを削除しないようにするためのものです。
Firefoxでフォールバックエンコーディングを設定する他のオプションが見つかりませんでした。
オフラインファイルのみのフォールバックをUTF-8に設定するだけで十分な場合は、about:config
に移動して、intl.charset.fallback.utf8_for_file
の値をtrue
に設定できます。
( ソース )
簡単な回避策は、エンコーディング宣言を含む完全なHTMLファイルを作成することです:
pandoc --metadata=pagetitle=Brukerveiledning --output=./brukerveiledning.html --standalone --to=html ./brukerveiledning.md
短くなった(あまり明確ではなく、警告を生成する):
pandoc --standalone ./brukerveiledning.md > ./brukerveiledning.html