¿Es posible en Javascript detectar si una cadena contiene caracteres multibyte? Si es así, ¿es posible decir cuáles?¿Cómo puedo saber si una cadena contiene caracteres multibyte en Javascript?
El problema que estoy corriendo en es este (disculpas si el carbón Unicode no se presenta a la derecha para usted)
s = "";
alert(s.length); // '2'
alert(s.charAt(0)); // '��'
alert(s.charAt(1)); // '��'
Editar para un poco de claridad aquí (espero).Según entiendo ahora, todas las cadenas en Javascript están representadas como una serie de puntos de código UTF-16, lo que significa que los caracteres regulares realmente ocupan 2 bytes (16 bits), así que mi uso de "multibyte" en el título estaba un poco apagado. Algunos personajes no caen en el plano multilingüe básico (BMP), como la cadena en el ejemplo anterior, por lo que ocupan dos puntos de código (32 bits). Esa es la pregunta que estaba haciendo. Tampoco estoy editando el título original, ya que para alguien que no sabe mucho sobre esto (y, por lo tanto, estaría buscando SO para obtener información al respecto), "multibyte" tendría sentido.
expresión regular? – Marco
para probar qué? – nickf
¿Esto es para Unicode o también podría ser UTF-8? – Davidann