Tengo la impresión de que el intérprete de JavaScript supone que el código fuente que está interpretando ya se ha normalizado. ¿Qué hace exactamente la normalización? No puede ser el editor de texto; de lo contrario, la representación de texto sin formato de la fuente podría cambiar. ¿Hay algún "preprocesador" que haga la normalización?Normalización de JavaScript Unicode
Respuesta
No, no hay ninguna característica de normalización Unicode utilizada automáticamente en JavaScript, o incluso está disponible según ECMAScript 5. Todos los caracteres permanecen sin cambios como su código original apunta, potencialmente en un formato no normal.
por ejemplo intento:
<script type="text/javascript">
var a= 'café'; // caf\u00E9
var b= 'café'; // cafe\u0301
alert(a+' '+a.length); // café 4
alert(b+' '+b.length); // café 5
alert(a==b); // false
</script>
Actualización:ECMAScript 6 will introduce Unicode normalization for JavaScript strings.
Debe señalarse que JavaScript * PREDATES * UTF-16 y realmente expone UCS-2. (Lo que usa internamente puede o no ser UTF-16, pero saca a UCS-2). –
Si está utilizando node.js
, hay una biblioteca unorm
para esto.
Esto funciona en Chrome al menos también – jontro
ECMAScript 6 introduce String.prototype.normalize()
que se encarga de la normalización de Unicode para usted.
unorm es un polyfill de JavaScript para este método, por lo que ya puede usar String.prototype.normalize()
hoy en día aunque no hay un solo motor que lo admita de forma nativa en este momento.
Para obtener más información sobre cómo y cuándo utilizar la normalización Unicode en JavaScript, consulte JavaScript has a Unicode problem – Accounting for lookalikes.
He actualizado respuesta @bobince 's:
var cafe4= 'caf\u00E9';
var cafe5= 'cafe\u0301';
console.log (
cafe4+' '+cafe4.length, // café 4
cafe5+' '+cafe5.length, // café 5
cafe4 === cafe5, // false
cafe4.normalize() === cafe5.normalize() // true
);
- 1. Normalización de cadenas Unicode en C/C++
- 2. Expectativas del usuario y normalización Unicode
- 3. ¿Cuál es la mejor forma de normalización de Unicode?
- 4. Ruby 1.9 no es compatible con la normalización Unicode aún
- 5. Cómo evitar los navegadores Normalización Unicode al enviar un formulario con Unicode
- 6. Javascript género con Unicode
- 7. Función "normalización"
- 8. normalización innecesaria
- 9. Tabla Normalización
- 10. Normalización de texto unicode a nombres de archivo, etc. en Python
- 11. Normalización de caracteres ASCII
- 12. La comparación de cadenas de Javascript falla al comparar caracteres Unicode
- 13. pasando cadenas unicode de django a javascript
- 14. Problema Unicode de doble escape Javascript
- 15. (De) Normalización de dos relaciones
- 16. Normalización de base de datos
- 17. Dependencia funcional y normalización
- 18. Normalización - 2NF vs 3NF
- 19. Normalización en MySQL
- 20. Normalización de cadenas con String.ToUpperInvariant()
- 21. correcta y portátil normalización utf8 nombre
- 22. Acentos JavaScript/HTML/Unicode: á! = Á
- 23. Javascript coincida y reemplace con unicode
- 24. Cómo comparar cadenas Unicode en Javascript?
- 25. Reducción Programáticos acento en JavaScript (también conocido como la normalización de texto o unaccenting)
- 26. PCA primero o normalización primero?
- 27. columnas de la normalización de Weka
- 28. Normalización de terminaciones de línea en Ruby
- 29. Python y la normalización de caracteres
- 30. Normalización de una tabla con baja integridad
El motor del navegador creo que es lo que lo maneja. Por eso tiene discrepancias entre los navegadores sobre lo que hacen y lo que no admiten. – Ryan