Firefox에서 대체 인코딩을 UTF-8로 설정하는 방법은 무엇입니까?

Firefox에서 대체 인코딩을 UTF-8로 설정하는 방법은 무엇입니까?

나는 노르웨이어 마크다운 문서를 작성했습니다:

$ 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못했습니다 .utf8utf-8iso-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] 옵션을 직접 추가하세요.

utfx2] 로컬 [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"

그런 다음 utfxFirefox 주소 표시줄에 입력하면 파일 목록이 표시됩니다.

답변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

관련 정보