Pregunta vs


Para definir el juego de caracteres para Doctype HTML5, ¿qué notación debo usar?

  1. Corto:

    <meta charset="utf-8" /> 
    
  2. Largo:

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

1387
2018-01-14 22:06


origen


Respuestas:


En HTML5, son equivalentes. Use el más corto, es más fácil de recordar y escribir. El soporte del navegador está bien ya que fue diseñado para compatibilidad con versiones anteriores.


978
2018-01-14 22:09



Ambas formas de meta charset declaración son equivalentes y deberían funcionar igual en todos los navegadores. Sin embargo, hay algunas cosas que debe recordar al declarar el conjunto de caracteres de sus archivos web como UTF-8:

  1. Guarde su archivo (s) en codificación UTF-8 sin el marca de orden byte (BOM).
  2. Declare la codificación en sus archivos HTML usando meta charset (como arriba).
  3. Su servidor web debe sirva sus archivos, declarando la codificación UTF-8 en el encabezado HTTP Content-Type.

Los servidores Apache están configurados para servir archivos en ISO-8859-1 de forma predeterminada, por lo que debe agregar la siguiente línea a su .htaccess archivo:

AddDefaultCharset UTF-8

Esto configurará a Apache para que entregue sus archivos declarando la codificación UTF-8 en el encabezado de respuesta de Tipo de contenido, pero sus archivos debe se guardará en UTF-8 (sin BOM) para comenzar.

El Bloc de notas no puede guardar sus archivos en UTF-8 sin la lista de materiales. Un editor gratuito que puede es Notepad ++. En la barra de menú del programa, seleccione "Codificación> Codificar en UTF-8 sin BOM". También puede abrir archivos y volver a guardarlos en UTF-8 utilizando "Codificación> Convertir a UTF-8 sin BOM".

Más sobre el Byte Order Mark (BOM) en Wikipedia.


236
2018-05-21 07:26



Otra razón para ir con el corto es que coincide con otras instancias en las que puede especificar un conjunto de caracteres en el marcado. Por ejemplo:

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

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

La consistencia ayuda a reducir los errores y hacer que el código sea más legible.

Tenga en cuenta que el atributo charset no distingue entre mayúsculas y minúsculas. Puede usar UTF-8 o utf-8, sin embargo, UTF-8 es más claro, más legible y más preciso.

Además, no hay absolutamente ninguna razón para usar ningún valor que no sea UTF-8 en el atributo meta charset o en el encabezado de página. UTF-8 es la codificación predeterminada para documentos web desde HTML4 en 1999 y la única forma práctica de hacer páginas web modernas.

Además, no debe usar entidades HTML en UTF-8. Los caracteres como el símbolo de copyright deben escribirse directamente. Las únicas entidades que debe usar son para los 5 caracteres de marcado reservados: menor que, mayor que, signo de unión, primo, doble primo. Las entidades necesitan un analizador HTML, que no siempre querrás usar en el futuro, introducen errores, hacen que tu código sea menos legible, aumentan el tamaño de tus archivos y, a veces, decodifican incorrectamente en varios navegadores dependiendo de las entidades que utilizaste. Aprende a escribir / insertar derechos de autor, marca registrada, cita abierta, cita cerrada, apóstrofo, em dash, en dash, bala, euro y cualquier otro personaje que encuentres en tu contenido, y usa esos caracteres reales en tu código. La Mac tiene un Visor de caracteres que puede activar en la Preferencia del sistema de teclado, y puede encontrar y luego arrastrar y soltar los caracteres que necesita, o usar el Visor de teclado correspondiente para ver qué teclas escribir. Por ejemplo, marca registrada es Option + 2. UTF-8 contiene todos los caracteres y símbolos de cada lenguaje humano escrito. Entonces no hay excusa para usar, en lugar de un em dash. No es una mala idea aprender las reglas de puntuación y tipografía también ... por ejemplo, saber que un período va dentro de una cita cerrada, no afuera.

Usar una etiqueta para algo como tipo de contenido y codificación es altamente   irónico, ya que sin saber esas cosas, no se podía analizar el archivo   para obtener el valor de la metaetiqueta

No, eso no es verdad. El navegador comienza a analizar el archivo como la codificación predeterminada del navegador, ya sea UTF-8 o ISO-8859-1. Dado que US-ASCII es un subconjunto de ambos ISO-8859-1 y UTF-8, el navegador puede leer bien de cualquier manera ... es lo mismo. Cuando el navegador encuentra la etiqueta meta charset, si la codificación es diferente a la que el navegador ya está utilizando, el navegador vuelve a cargar la página en la codificación especificada. Es por eso que colocamos la etiqueta meta charset en la parte superior, justo después de la etiqueta principal, antes que cualquier otra cosa, incluso el título. De esa manera puede usar caracteres UTF-8 en su título.

Debe guardar su archivo (s) en codificación UTF-8 sin BOM

Eso no es estrictamente cierto. Si solo tiene caracteres US-ASCII en su documento, puede guardarlo como US-ASCII y publicarlo como UTF-8, porque es un subconjunto. Pero si hay caracteres Unicode, está correcto, debe guardar como UTF-8 sin BOM.

Si quieres un buen editor de texto que guarde tus archivos   en UTF-8, recomiendo Notepad ++.

En la Mac, utiliza Bare Bones TextWrangler (gratis) desde Mac App Store, o Bare Bones BBEdit que está en Mac App Store por $ 39.99 ... muy barato para una herramienta tan genial. En cualquiera de las aplicaciones, hay un menú en la parte inferior de la ventana del documento donde especifica la codificación del documento y puede elegir fácilmente "UTF-8 no BOM". Y, por supuesto, puede configurarlo como predeterminado para nuevos documentos en Preferencias.

Pero si su servidor web sirve la codificación en el encabezado HTTP,   lo cual se recomienda, ambos [meta tags] son ​​innecesarios.

Eso es incorrecto. Por supuesto, debe establecer la codificación en el encabezado HTTP, pero también debe configurarlo en el atributo meta charset para que el usuario pueda guardar la página, salir del navegador en el almacenamiento local y luego Abrir de nuevo más tarde, en cuyo caso la única indicación de la codificación que estará presente es el atributo meta charset. También debe establecer una etiqueta base por el mismo motivo ... en el servidor, la etiqueta base no es necesaria, pero cuando se abre desde el almacenamiento local, la etiqueta base permite que la página funcione como si estuviera en el servidor, con todas las activos en su lugar, etc., sin enlaces rotos.

AddDefaultCharset UTF-8

O simplemente puede cambiar la codificación de tipos de archivos particulares de esta manera:

AddType text/html;charset=utf-8 html

Un consejo para servir archivos UTF-8 y Latin-1 (ISO-8859-1) es otorgar a los archivos UTF-8 una extensión de "texto" y archivos Latin-1 "txt".

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

Por último, considere guardar sus documentos con terminaciones de línea Unix, no con DOS heredados o terminaciones de línea de Mac (clásica), que no ayudan y pueden perjudicar, especialmente en el futuro, a medida que nos alejamos cada vez más de esos sistemas heredados. Un documento HTML con HTML5 válido, codificación UTF-8 y terminaciones de línea Unix es un trabajo bien hecho. Puede compartir, editar y almacenar, leer y recuperar, y confiar en ese documento en muchos contextos. Es lingua franca. Es papel digital.


78
2017-08-20 20:26



<meta charset="utf-8">fue presentado con / para HTML5.

Como se menciona en la documentación, ambos son válidos. Sin embargo, <meta charset="utf-8"> es solo para HTML5 (y más fácil de escribir / recordar).

A su debido tiempo, el viejo estilo se convertirá en obsoleto en el futuro cercano. Me quedaría con el nuevo <meta charset="utf-8">.

Solo hay una forma, pero arriba. En el caso de la tecnología, eso es eliminar gradualmente lo viejo (realmente, REALMENTE rápido)

Documentación:  HTML meta charset Attribute-W3Schools


28
2018-06-25 21:04



Si bien no cuestiono las otras respuestas, creo que vale la pena mencionar lo siguiente.

  1. El largo" (http-equiv) la notación y la "corta" son iguales, lo que ocurra primero gana;
  2. Los encabezados del servidor web anularán todas las <meta> etiquetas;
  3. BOM (marca de orden de byte) anulará todoy, en muchos casos, afectará a html 4 (y probablemente también a otras cosas);
  4. Si no declara ninguna codificación, probablemente obtendrá su texto en "codificación de texto alternativo" que define su navegador. Ni en Firefox ni en Chrome es utf-8;
  5. En ausencia de otras pistas, el navegador intentará leer su documento como si estuviera en ASCII para obtener la codificación, por lo que no puede usar codificaciones raras (sin embargo, utf-16 con BOM debería hacerlo);
  6. Si bien las especificaciones dicen que la declaración de codificación debe estar dentro de los primeros 512 bytes del documento, la mayoría de los navegadores intentarán leer más que eso.

Puedes probar ejecutando 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 y apuntando su navegador a localhost:4500. (Por supuesto, querrá cambiar o quitar partes. La parte BOM es \xef\xbb\xbf. Tenga cuidado con la codificación de su caparazón).

Tenga en cuenta que es muy importante que declare explícitamente la codificación. Dejar que los navegadores adivinen puede llevar a problemas de seguridad.


18
2018-01-15 00:03



Utilizar <meta charset="utf-8" /> para navegadores web cuando se usa HTML5.

Utilizar <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> cuando usas HTML4 o XHTML, o para analizadores de dom obsoletos, como DOMDocument en php


9
2017-11-26 08:08



Hay algunas noticias basadas en Fundación Mozillay punto de sitio

No use este valor (http-equiv=content-type) ya que es obsoleto.   Prefiere el charset atributo en el <meta> elemento.    enter image description here


0
2017-08-15 23:22