Tengo un código que ordena columnas de tabla por propiedades de objeto. Se me ocurrió que en japonés o chino (idiomas no alfabéticos), las cadenas que se envían a la función de clasificación se compararían de la misma manera que lo haría un lenguaje alfabético.¿Qué significa ordenar en idiomas no alfabéticos (es decir, asiáticos)?
Tomemos por ejemplo una lista de apellidos japoneses:
寿拘 (Suzuki)
松坂 (Matsuzaka)
松井 (Matsui)
山田 (Yamada)
藤本 (Fujimoto)
Cuando ordenar la lista anterior a través de Javascript, el resultado es:
寿拘 (Suzuki)
山田 (Yamada)
松井 (Matsui)
松坂 (Matsuzaka)
藤本 (Fujimoto)
Esto es diferente de la ordenación de los japoneses syllabary , que organizaría la lista fonéticamente (como lo haría un diccionario japonés):
寿拘 (Suzuki)
藤本 (Fujimoto)
松井 (Matsui)
松坂 (Matsuzaka)
山田 (Yamada)
Lo que yo quiero saber es:
- ¿Alguno de caracteres de doble byte realmente dan comparado contra el otro en una función de clasificación?
- ¿Qué sucede realmente en este tipo?
- (crédito extra) ¿El resultado de tal tipo significa algo en absoluto? ¿El concepto de clasificación realmente funciona en idiomas asiáticos (y otros)? Si es así, ¿qué significa y para qué se debe esforzar para crear una función de comparación para esos idiomas?
ADICIÓN EN RESUMEN respuestas y sacar conclusiones:
En primer lugar, gracias a todos los que contribuyeron a la discusión. Esto ha sido muy informativo y útil. Especiales agradecimientos a bobince, Lie Ryan, Gumbo, Jeffrey Zheng, y Larry K, por su profundo y análisis profundos. Otorgué la marca de verificación al Larry K por señalarme una solución que mi pregunta no pudo prever, pero acerté cada respuesta que encontré útil.
El consenso parece ser que:
cadenas de caracteres chinos y japoneses están ordenados por puntos de código Unicode, y su orden puede basarse en una lógica que puede ser de alguna manera inteligible para los lectores con conocimientos pero es probable que no tenga mucho valor práctico para ayudar a los usuarios a encontrar la información que están buscando.
El tipo de función de comparación que se necesitaría para hacer un tipo semánticamente o fonéticamente útil es demasiado engorroso como para considerarlo, especialmente dado que los resultados probablemente serían menos que satisfactorios, y en cualquier caso los algoritmos de comparación tendrían para ser cambiado para cada idioma Lo mejor es permitir que el género proceda sin siquiera intentar una función de comparación.
Probablemente estaba haciendo la pregunta incorrecta aquí.Es decir, estaba pensando demasiado "dentro de la caja" sin considerar que la verdadera pregunta no es cómo hago que la clasificación sea útil en estos idiomas, sino cómo proporciono al usuario una forma útil de encontrar elementos en una lista. Los occidentales automáticamente piensan en clasificar para este propósito, y yo era culpable de eso. Larry K me señaló un artículo de Wikipedia que sugiere , una función de filtrado podría ser más útil para los lectores asiáticos. Esto es lo que planeo seguir, ya que es al menos tan rápido como ordenar, desde el lado del cliente. Mantendré la clasificación de columnas porque se entiende bien en los idiomas occidentales, y porque los hablantes de cualquier idioma encontrarían útil la clasificación de fechas y otros tipos de datos numéricos. Pero también agregaré ese mecanismo de filtrado, que sería útil en largas listas para cualquier idioma.
+1 Me parece muy interesante –