¿Por qué usamos ?

es uno de esos tipos de codificación de caracteres.
Esta es la parte abstracta del artículo,
Muchos proyectos de software, en un momento u otro, de repente se dan cuenta de que deberían admitir más de un idioma. Incluso el uso regular en un idioma a veces requiere un carácter especial ocasional que, sin sorpresa, no está disponible en su conjunto de caracteres. A veces, los desarrolladores evitan esto agregando soporte para múltiples codificaciones: cuando usan chino, usan Big5, cuando usan japonés, usan Shift-JIS, cuando usan griego, etc. Otras veces, usan referencias de caracteres con gran entusiasmo.
UTF-8, sin embargo, obvia la necesidad de cualquiera de estas complicadas medidas. Después de hacer que el sistema use UTF-8 y ajustar las fuentes que están fuera del alcance del navegador (más sobre esto más adelante), UTF-8 simplemente funciona. Puede usarlo para cualquier idioma, incluso muchos idiomas a la vez, no tiene que preocuparse por administrar múltiples codificaciones, no tiene que usar esas entidades amigables para el usuario.
Si está buscando una parte más completa, eche un vistazo aquí, es más detalles.
UTF-8: El secreto de la codificación de caracteres

Una de las razones es que el servidor podría configurarse para no enviar codificación o codificación incorrecta. Esto evitará que el documento se muestre incorrectamente en tales situaciones.

Otra razón que no veo mencionada es que esto también especifica la codificación cuando el documento se guarda en el disco. La mayoría de las computadoras consideran que los documentos son UTF-8 por defecto, sin embargo, si no lo hacen, esto lo salva.

Algunas personas han comentado que debería configurar sus servidores correctamente. Creo que debería escribir un código robusto que funcione incluso en caso de un servidor mal configurado. De hecho, no veo ninguna razón para no incluir siempre también.

Nota final: este elemento siempre debe ser el primero en el elemento . Porque si viene después del elemento , y el servidor está mal configurado, el navegador mostrará un título con formato incorrecto antes de que descubra la codificación. Esto podría verse en acción, por ejemplo, en Vokabular.

Porque en lugar de permitir que el navegador detecte automáticamente el juego de caracteres del código, podemos suministrarlo directamente dentro del código. Por lo tanto, se pueden evitar las ocasiones en que el navegador realiza detecciones de caracteres incorrectas.

El atributo charset especifica la codificación de caracteres para el documento HTML.

Los valores comunes para esta etiqueta son:

  • UTF-8: codificación de caracteres para Unicode.
  • ISO-8859-1 – Codificación de caracteres para el alfabeto latino.

Para obtener más información, visite (MetaCharsetAttribute – doctype-mirror – El atributo meta charset especifica la codificación de caracteres del documento actual. – Mirror of Google Doctype – Google Project Hosting)