¿Detecta el soporte de caracteres del navegador en javascript?

Estoy trabajando en un sitio web relacionado con la música, y con frecuencia uso los caracteres especiales HTML para objetos punzantes (♯) y planos (♭) para mantener las cosas bonitas, por ejemplo:

♯ ♭ 

Sin embargo, he notado que en algunos navegadores (IE6, Safari para PC) esos caracteres no son compatibles. Creé un javascript condicional que sirve caracteres simples, compatibles en lugar de los especiales (G # para G♯ y Bb para B ♭). Pero estoy teniendo dificultades para descubrir cómo detectar qué navegadores carecen de esos caracteres.

Sé que podría probar el navegador (por ejemplo, ie6), pero esperaba hacer las cosas bien y probar el soporte del personaje en sí.

¿Alguien sabe de una buena manera de hacer esto usando javascript, jQuery o Rails? (La página está servida por una aplicación de Rails, por lo que el objeto de solicitud y cualquier otra magia Rails está en la mesa.

Si crea dos SPAN, uno que contiene el carácter que desea y el otro que contiene un carácter no imprimible U + FFFD ( ) es bueno, puede probar si tienen el mismo ancho.

 

Debe asegurarse de que el DIV no esté diseñado con una fuente fija.

El “soporte del navegador” no es el problema aquí. Debería servir sus archivos como UTF-8 * , y usar los caracteres apropiados en lugar de las entidades HTML.

  • Símbolo nítido Unicode: ♯ (U + 266F)
  • Símbolo plano Unicode: ♭ (U + 266D)

También debe asegurarse de guardar sus archivos en UTF-8 (y no, por ejemplo, ASCII o ISO-8859-1).

Ver también: Joel, el software que debe mencionarse : el mínimo absoluto. Todo desarrollador de software. Absolutamente, definitivamente, debe saber sobre Unicode y juegos de caracteres (¡Sin excusas!) .


* No soy un tipo de Rails, pero creo que lo hace de manera predeterminada.

Agrega esto a tu HTML

    

Y verifique si IE y Safari representan la página correcta.