programing

vs

telecom 2023. 4. 10. 20:56
반응형

vs

HTML5 Doctpe의 문자 집합을 정의하려면 어떤 표기법을 사용해야 합니까?

  1. 쇼트:

    <meta charset="utf-8" /> 
    
  2. 긴 길이:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    

HTML5 에서는, 그것들은 동등합니다.기억하고 타이핑하기 쉽기 때문에 짧은 것을 사용합니다.브라우저 지원은 하위 호환성을 위해 설계되었기 때문에 문제 없습니다.

메타 문자 집합 선언의 두 형식은 동일하며 브라우저 전체에서 동일하게 작동합니다.단, 웹 파일 문자 세트를 UTF-8로 선언할 때 주의해야 할 사항이 몇 가지 있습니다.

  1. 바이트 순서 마크(BOM)를 사용하지 않고 UTF-8 인코딩으로 파일을 저장합니다.
  2. 위의 메타 문자 집합을 사용하여 HTML 파일에 인코딩을 선언합니다.
  3. 서버가 파일을 서비스하고 Content-Type HTTP 헤더에 UTF-8 인코딩을 선언해야 합니다.

되어 있기 때문에 을 Apache에 ..htaccess 삭제:

AddDefaultCharset UTF-8

그러면 Content-Type 응답 헤더에서 UTF-8 인코딩을 선언하는 파일을 처리하도록 Apache가 설정되지만, 처음에는 파일을 UTF-8(BOM 없음)에 저장해야 합니다.

메모장은 BOM이 없으면 UTF-8에 파일을 저장할 수 없습니다.사용할 수 있는 무료 에디터는 Notepad++입니다.프로그램 메뉴바에서 [BOM을 사용하지 않고 UTF-8로 인코딩]를 선택합니다.또한 [BOM을 사용하지 않고 UTF-8로 변환]를 사용하여 파일을 열고 UTF-8로 다시 저장할 수도 있습니다.

Wikipedia의 BOM(Byte Order Mark)에 대한 자세한 내용은 다음과 같습니다.

또 다른 이유는 마크업으로 문자 세트를 지정할 수 있는 다른 인스턴스와 일치하기 때문입니다.예를 들어 다음과 같습니다.

<script type="javascript" charset="UTF-8" src="/script.js"></script>

<p><a charset="UTF-8" href="http://example.com/">Example Site</a></p>

일관성은 오류를 줄이고 코드를 더 잘 읽을 수 있도록 도와줍니다.

charset 속성은 대소문자를 구분하지 않습니다.UTF-8 또는 utf-8을 사용할 수 있지만 UTF-8이 더 명확하고 읽기 쉬우며 정확합니다.

또한 meta charset 속성 또는 페이지 헤더에 UTF-8 이외의 값을 사용할 이유가 전혀 없습니다.UTF-8은 1999년 HTML4 이후 웹 문서의 기본 인코딩이며 현대 웹 페이지를 만드는 유일한 실용적인 방법입니다.

또한 UTF-8에서는 HTML 엔티티를 사용하지 마십시오.저작권 기호와 같은 문자는 직접 입력해야 합니다.5개의 예약된 마크업 문자(암페어샌드 미만, 큼, 프라임, 더블 프라임)에만 사용해야 합니다.

엔티티에는 HTML 파서가 필요합니다.이것을 항상 사용하는 것은 아닙니다.이러한 오류는 오류를 발생시키고, 코드를 읽기 어렵게 만들고, 파일 크기를 늘리며, 사용한 엔티티에 따라 다양한 브라우저에서 잘못 디코딩될 수 있습니다.저작권, 상표, 오픈 따옴표, 닫힘따옴표, 아포스트로피, 엠 대시, 대시, 글머리 기호, 유로 및 기타 콘텐츠에 나타나는 문자를 입력/삽입하는 방법에 대해 배우십시오.

Mac에는 키보드 시스템 기본 설정에서 켤 수 있는 문자 뷰어가 있으며, 필요한 문자를 찾아서 끌어서 놓거나, 일치하는 키보드 뷰어를 사용하여 입력할 키를 볼 수 있습니다.예를 들어 상표는 + 입니다. UTF-8에는 모든 문자 및 기호가 포함되어 있습니다.

따라서 em 대시 대신 사용하는 것에는 변명의 여지가 없습니다.구두점과 타이포그래피 규칙을 배우는 것도 나쁘지 않다.예를 들어 마침표가 외부가 아니라 가까운 인용문 안에 들어간다는 것을 아는 것입니다.

컨텐츠 타입이나 인코딩등의 것에<meta>태그를 사용하는 것은 매우 아이러니합니다.이러한 것을 모르면, 메타데이터 태그의 값을 취득하기 위해서 파일을 해석할 수 없기 때문입니다.

아니, 그건 사실이 아니야.브라우저는 UTF-8 또는 ISO-8859-1 중 하나의 기본 인코딩으로 파일 해석을 시작합니다.US-ASCII는 ISO-8859-1과 UTF-8의 서브셋이기 때문에 브라우저는 어느 쪽이든 정상적으로 읽을 수 있습니다.똑같아요.브라우저에 메타 문자 집합 태그가 발견되면 이미 사용 중인 인코딩과 다를 경우 브라우저는 지정된 인코딩으로 페이지를 새로고침합니다.

그래서 메타 문자셋 태그를 선두에 붙이고 헤드 태그 바로 뒤에 붙이고 제목까지 붙이고 있습니다.그러면 제목에 UTF-8 문자를 사용할 수 있습니다.

BOM 없이 UTF-8 인코딩으로 파일을 저장해야 합니다.

그것은 엄밀히 말하면 사실이 아니다.문서에 US-ASCII 문자만 있는 경우 서브셋이므로 US-ASCII로 저장하고 UTF-8로 제공할 수 있습니다.그러나 Unicode 문자가 있는 경우 정답입니다.BOM을 사용하지 않고 UTF-8로 저장해야 합니다.

파일을 UTF-8에 저장할 수 있는 좋은 텍스트 에디터를 원한다면 Notepad++를 추천합니다.

Mac에서는 Mac App Store의 Bare Bones TextWrangler(무료) 또는 Mac App Store의 Bare Bones BBEdit을 $39.99에 사용합니다.그렇게 훌륭한 도구치고는 매우 저렴합니다.

어느 앱이든 문서 창 하단에 문서 인코딩을 지정할 수 있는 메뉴가 있으며, "UTF-8 no BOM"을 쉽게 선택할 수 있습니다. 물론 새로운 문서의 기본 설정으로 설정할 수 있습니다.

그러나 웹 서버가 HTTP 헤더로 인코딩을 처리하는 경우(권장사항), 두 [meta tags]는 불필요합니다.

그것은 잘못됐어.물론 HTTP 헤더로 인코딩을 설정해야 하지만 메타 문자 집합 속성으로도 설정해야 합니다.이 경우 페이지를 사용자가 브라우저에서 로컬 스토리지에 저장하고 나중에 다시 열 수 있습니다.이 경우 표시되는 인코딩의 유일한 표시는 메타 문자 집합 속성입니다.

같은 이유로 기본 태그도 설정해야 합니다.서버에서는 기본 태그가 필요하지 않지만 로컬 스토리지에서 열었을 때 기본 태그를 사용하면 페이지가 서버에 있는 것처럼 작동하고 모든 자산이 제자리에 배치되는 등 링크가 끊어지지 않습니다.

Add Default Charset UTF-8

또는 다음과 같이 특정 파일 유형의 인코딩을 변경할 수 있습니다.

AddType text/html;charset=utf-8 html

UTF-8 및 Latin-1(ISO-8859-1) 파일을 모두 사용하기 위한 힌트는 UTF-8 파일에 '텍스트' 확장자를 붙이고 Latin-1 파일에 'txt'를 붙이는 것입니다.

AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text

마지막으로, 레거시 DOS나 (클래식) Mac 라인 엔딩이 아닌 Unix 라인 엔딩으로 문서를 저장하는 것을 고려해 보십시오. 이러한 엔딩은 특히 레거시 시스템에서 점점 더 멀어질수록 도움이 되지 않고 해가 될 수 있습니다.

유효한 HTML5, UTF-8 인코딩 및 Unix 행 엔딩이 있는 HTML 문서는 적절한 작업입니다.공유, 편집, 저장, 읽기 및 복구가 가능하며 많은 컨텍스트에서 이 문서를 사용할 수 있습니다.랭귀지 프랑카야디지털 종이입니다.

<meta charset="utf-8">함께 되었습니다.

설명서에서 설명한 바와 같이 둘 다 유효합니다. ★★★★★★★★★★★★★★.<meta charset="utf-8">는 HTML5 전용입니다(입력이나 기억은 간단합니다).

머지않아, 낡은 스타일은 가까운 장래에 폐지될 것이다.나는 새로운 것을 고수할 것이다.<meta charset="utf-8">.

한 가지 방법밖에 없어, 하지만 위로.테크놀로지의 경우는, 낡은 것을 단계적으로 폐기하고 있습니다(정말, 정말로 고속입니다).

문서: HTML 메타 문자 집합 속성:W3 학교

다른 답변에는 이의를 제기하지 않지만, 다음 사항을 언급할 가치가 있다고 생각합니다.

  1. "긴" (http-equiv) 표기와 "짧은" 표기는 동일합니다.어느 쪽이 먼저 오는 쪽이 이긴다.
  2. 웹 서버 헤더는 모든 웹 서버 헤더를 덮어씁니다.<meta>태그
  3. BOM(바이트 오더 마크)은 모든 을 덮어쓰며, 대부분의 경우 HTML 4(및 다른 것들도 마찬가지)에 영향을 미칩니다.
  4. 인코딩을 선언하지 않으면 브라우저에 정의되어 있는 "폴백텍스트 인코딩"으로 텍스트를 받을 수 있습니다.파이어폭스도 크롬도 UTF-8도 아니다.
  5. 다른 단서가 없을 경우 브라우저는 ASCII로 된 것처럼 문서를 읽으려고 하기 때문에 이상한 인코딩을 사용할 수 없습니다(단, BOM을 사용하는 UTF-16은 가능합니다).
  6. 사양에서는 인코딩 선언이 문서의 처음 512바이트 이내여야 한다고 되어 있지만 대부분의 브라우저는 그 이상의 판독을 시도합니다.

를 실행하여 테스트할 수 있습니다.echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500브라우저 포인팅은localhost:4500(물론 부품을 교환하거나 분리해야 합니다.BOM 파트는\xef\xbb\xbf. 셸 인코딩에 주의하십시오.)

부호화를 명시적으로 선언하는 것이 매우 중요하므로 주의해 주십시오.브라우저에 추측을 맡기면 보안 문제가 발생할 수 있습니다.

사용하다<meta charset="utf-8" />웹 브라우저의 경우 HTML5를 사용합니다.

사용하다<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />HTML4 또는 XHTML을 사용하는 경우 또는 오래된 DOM 파서의 경우, 예를 들어 다음과 같습니다.DOMDocumentPHP 5.3에 포함되어 있습니다.

이메일에 서명을 삽입하려면 긴 버전을 사용합니다.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

그 이유는 HTML5를 사용하는 이메일 리더가 많지 않기 때문에 항상 오래된 HTML 스타일을 사용하는 것이 좋습니다.사실 div + CSS보다는 테이블을 사용하는 것이 좋습니다.

Mozilla FoundationSitePoint기반으로 한 몇 가지 뉴스가 있습니다.

이 값은 사용하지 마십시오(http-equiv=content-type더 이상 사용되지 않습니다.를 선호합니다charset<의 속성meta> 요소

여기에 이미지 설명을 입력하십시오.

언급URL : https://stackoverflow.com/questions/4696499/meta-charset-utf-8-vs-meta-http-equiv-content-type

반응형