나는 노르웨이어 마크다운 문서를 작성했습니다:
$ 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" 및 "기타(포함)로 설정해 보았습니다. 서유럽) )". 이들 중 어느 것도 æ, ø 및 å를 표시하지 않습니다. 유니코드 옵션이 없습니다. 또한 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
거부되었습니다.
답변1
Firefox에서 대체 인코딩을 UTF-8로 설정하는 것은 의도적으로 차단되었습니다. bugzilla.mozilla.org/show_bug.cgi?id=967981#c4를 참조하세요.
제가 조사한 두 가지 해결 방법은 다음과 같습니다.
1] 사소한 것들을 적용반점소스에 그리고파이어폭스 구축기본 설정 | 글꼴 및 색상 | 대체 텍스트 인코딩 드롭다운 메뉴에 유니코드[UTF-8] 옵션을 직접 추가하세요.
utfx
2] 로컬 [Apache] httpd 서버를 실행하고 디렉토리에 있는 utf-8 인코딩 파일에 대한 이름 기반 가상 서버를 설정합니다 /my/utf-8/files
. 그런 다음 Firefox가 파일을 UTF-8 인코딩으로 인식하고 표시하는 utf-8 문자 집합 http 헤더를 생성할 수 있습니다. 물론 실제 파일 인코딩은 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
세 가지 파일 형식(testæø, test.txt, test.html).
출력은 다음과 같아야 합니다.
콘텐츠 유형: text/plain; charset=utf-8
콘텐츠 유형: text/plain
;
c) about:config - 새로 추가|부울:
browser.fixup.domainwhitelist.utfx "true"
그런 다음 utfx
Firefox 주소 표시줄에 입력하면 파일 목록이 표시됩니다.
답변2
업데이트: 이 문제는 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
2016년 연혁정보
이 동작의 이유는 Mozilla 버그에 설명되어 있는 것 같습니다.815551(UTF-8은 기본적으로 자동 감지됩니다) 1071816(파일: URL에서 BOM 없는 UTF-8 텍스트/일반 텍스트 파일 로드 지원)
내가 이해한 바로는 기본적으로 "감지가 너무 불안정하므로 항상 인코딩을 지정해야 합니다.".
- 기본이 아닌 콘텐츠의 경우 이 프로토콜을 활용해야 합니다. HTTP의 경우 헤더에
charset
올바른 정보가 제공 됩니다.Content-Type
- HTML 콘텐츠의 경우 Doctype을 사용할 수도 있습니다.
<meta charset="utf-8" />
- 다른 것과 마찬가지로 남은 유일한 표준 방법은 BOM을 지정하는 것입니다.
Mozilla 개발자는오픈 패치언젠가 Firefox에서 로컬 BOM 없는 UTF-8 문서를 열 수 있도록 환경 설정을 추가했습니다.
답변3
귀하의 질문에 댓글을 달았듯이, 저는 Mailcap을 통해 Firefox의 Mutt에서 부분 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
도구( 패키지)는 Firefox가 로드를 완료하기 전에 Mutt가 파일을 삭제하지 않도록 moreutils
파일을 제자리에서 변경하는 데 도움이 됩니다 .sleep
Firefox에서 대체 인코딩을 설정하는 다른 옵션을 찾지 못했습니다.
답변4
간단한 해결책은인코딩 선언이 포함된 전체 HTML 파일 생성:
pandoc --metadata=pagetitle=Brukerveiledning --output=./brukerveiledning.html --standalone --to=html ./brukerveiledning.md
단축됨(덜 명확하고 경고 생성):
pandoc --standalone ./brukerveiledning.md > ./brukerveiledning.html