2011-03-22 16 views

Respuesta

27

¿Para qué? Guardando un archivo, usa NFC como lo usa el modelo de personaje web (estrictamente, la normalización W3C insiste en que tanto la secuencia esté en NFC como también cuando las entidades en HTML o XML se conviertan a los caracteres que representan, que aún esté en NFC) Las probabilidades de que alguna vez marquen una diferencia práctica son escasas, aunque podrían evitar algunos problemas bastante oscuros que molestan a alguien más adelante.

La normalización hace que ciertas secuencias equivalentes den como resultado flujos idénticos. Por ejemplo, U + 0065 (e) seguido de U + 0301 (un acento agudo que combina) es equivalente a U + 00E9 (é) por sí mismo.

NFD divide todas esas cadenas en sus componentes (por ejemplo, convertir U + 00E9 en U + 0065 seguido de U + 0301). Si hay dos o más caracteres combinados en una fila, se reordenan de acuerdo con reglas que dan una consistencia (ḉ podría tener la cedilla seguida por el accute o el accute seguido de la cedilla, y necesitamos un orden consistente para tener la misma cuerda producida). En su mayoría, NFD es útil para el procesamiento interno como parte de otra tarea, como pelar acentos o producir NFC.

NFC comienza con NFD y luego combina los caracteres juntos nuevamente donde sea posible, salvo algunas excepciones para garantizar que lo que era una cadena normalizada con una versión de Unicode permanezca así con otro.

NFKD va más allá de NFD al reemplazar ciertos caracteres similares entre sí. ⁵ por ejemplo, se reemplaza por 5. Esto "daña" el texto (un usuario puede elegir razonablemente ⁵ más de 5 por una buena razón) pero es útil para buscar (buscar "pez" en google y arroja resultados para "pez" porque trata las long-s lo mismo que short-s) y como una restricción en ciertos casos para evitar problemas de seguridad con caracteres similares pero diferentes. NKFC primero hace NFKD y luego se combina de la misma manera que NFC.

http://unicode.org/reports/tr15/ para el flaco completo, y "usa NFC pero no te preocupes por eso" para repetir la respuesta corta.

Cuestiones relacionadas