2014-01-27 1 views
1

저는 브라질 사람이고 일하고 있습니다/여기에서 살고 있습니다. 모르는 사람들을 위해 포르투갈 인은 악센트 부호가있는 글자가 많은 단어가 있습니다. 또한 charset으로 올바르게 작업하지 않으면 악센트 부호가있는 모든 문자가 브라우저에 렌더링 할 때 쓰레기가된다는 것을 알고 있습니다.웹 페이지의 콘텐츠 유형을 설정하는 것이 좋지 않습니까?

일상 업무에서 필자는 상사의 코드 (가장 신중하게 잘 쓰여진 종류가 아님)에서 앰퍼샌드 패턴을 볼 수 있습니다 (이름이 있다면 알려주세요). 따라서, 예를 들어,이 도처에 있습니다

Formulário 
Relatório 
Exclusão 

I, 당신은 모두 서버와 클라이언트에서 웹 페이지의 문자 집합을 설정할 수 있습니다 알고, 우리는 BTW (내 웹 페이지에서이 작업을하고있다 ... ASP.NET 웹폼)와

<%@ Page (...) ContentType="text/html; charset=utf-8" %> 

작업 다음의 <head>에서 봤는데 :

<meta charset="utf-8" /> 

을하지만 내 상사는이를보고이 나쁜 연습했다. 나는 조금 봤 거든 아무 자원도 실제로, 나쁜 연습다는 것을 찾아 내지 않았다. 내 상사가 좋은 습관이 나쁜 행동이라고 말한 적이 몇 번있었습니다. 그런 다음 그는 내 악센트 부호가있는 모든 문자를 앰퍼샌드 문자로 바꾸라고했습니다. 정말로 더 나은 방법이라면, 나는 그것을 할 것입니다.

따라서 TL : DR : 웹 페이지의 콘텐츠 형식을 설정하거나 "앰퍼샌드 패턴"을 사용하는 것이 더 좋습니까?

답변

2

W3C는 매우 유용하며 an article on character encoding입니다. 이 작업을 수행하는 데는 꽤 많은 시간이 걸립니다.

HTML 또는 XML 페이지에 사용되는 인코딩을 항상 지정해야합니다. 그렇지 않으면 콘텐츠의 문자가 올바르게 해석되지 않을 수 있습니다. 이것은 인간의 가독성 문제 만이 아니라, 점점 더 많은 기계가 데이터를 이해해야합니다.

그것은 좋은 연습과 :

또한, <meta> 요소에 MDN article에 따르면, 좋은 연습은 특정 크로스 스크립팅 공격으로부터 사용자를 보호하기 때문에, 문자 집합을 지정하는 것입니다 이 속성을 사용하여 문자 을 정의하는 것이 좋습니다. 페이지에 문자 집합이 정의되어 있지 않으면 UTF-7 대체 교차 스크립팅 기술처럼 페이지 사용자에게 해를 끼칠 수있는 몇 가지 크로스 스크립팅 기술이 실용적이 될 수 있습니다. 항상 이 메타를 설정하면 이러한 위험으로부터 보호됩니다.

콘텐츠 형식을 지정할 수없는 경우는 드물지만 일반적인 형식은 콘텐츠 형식을 지정하는 것이 좋습니다. 그리고 제대로 작성했다면 특수 문자의 HTML 표현을 사용할 필요가 없습니다 (필자의 생각으로는 코드를 읽기가 훨씬 어려워집니다).

+0

위대한 답변 크게 백업했습니다. "ContentType 접근 방식이 더 나은 방법"이라고 생각하면 될까요? (그건 내 결론 이었지만, 나는 이것에 대해 약간 편견이 있음을 알았다.) –

+1

@ AndréLeria 그래, 내 생각에 콘텐츠 유형을 지정하는 것이 더 나은 관행이며, 이것이 불가능한 경우는 드물지만 일반적인 경우 의견은 ii가 그렇게하는 것이 좋다고 생각합니다. –

2

"better"는 다소 주관적입니다. 두 가지 접근법에 장단점이 있습니다.

  • 당신이하지 않아도 의미 :

    • 당신에게 작은 코드를 제공

    사용하여 문자 참조 더 많은 읽을 수있는 코드를 제공합니다 : 재치있는 문자 인코딩을 사용

    인코딩 걱정하기

  • 잘못된 HTTP 헤더가있는 곳에서 페이지를 복사 할 수 있습니다.
+0

첫 문장이 마음에 들었습니다. 어쩌면 내 상사가 왜 나쁜 습관을 "더 나은"것으로 간주하는지 설명 할 수 있습니다. –

관련 문제