У меня есть код, который сортирует столбцы таблицы по свойствам объекта. Мне пришло в голову, что на японском или китайском (не алфавитные языки) строки, которые отправляются в функцию сортировки, будут сравниваться с тем, как будет выглядеть алфавитный язык.
Возьмем, например, список японских фамилий:
寿拘 (Suzuki)
松坂 (Matsuzaka)
松井 (Matsui)
山田 (Yamada)
藤本 (Fujimoto)
Когда я сортирую вышеуказанный список через Javascript, результат:
寿拘 (Suzuki)
山田 (Yamada)
松井 (Matsui)
松坂 (Matsuzaka)
藤本 (Fujimoto)
Это отличается от упорядочения японского syllabary, который бы упорядочил список фонетически (как японский словарь):
寿拘 (Suzuki)
藤本 (Fujimoto)
松井 (Matsui)
松坂 (Matsuzaka)
山田 (Yamada)
Что я хочу знать:
- Действительно ли один двухбайтовый символ сравнивается с другим в функции сортировки?
- Что действительно происходит в таком роде?
- (Дополнительный кредит) Является ли результат такого рода означать что-нибудь вообще? Действительно ли концепция сортировки работает на азиатских (и других) языках? Если да, что это значит и к чему нужно стремиться при создании функции сравнения для этих языков?
ДОБАВЛЕНИЕ ДЛЯ ПОДТВЕРЖДЕНИЯ ОТВЕТОВ И РЕЗУЛЬТАТОВ: [/strong >
Во-первых, спасибо всем, кто внес свой вклад в обсуждение. Это было очень информативно и полезно. Специальные крик-ауты bobince, Ли Райан, Gumbo, Джеффри Чжэн и Ларри К, для их углубленного и продуманного анализа. Я наградил галочкой Ларри К за то, что указал на решение, которое мой вопрос не смог предвидеть, но я поднял все ответы, которые я нашел полезными.
Похоже, что консенсус заключается в следующем:
-
Китайские и японские символьные строки сортируются по кодовым точкам Юникода, и их упорядочение может основываться на обосновании, которое может быть каким-то образом понятным для знающих читателей, но вряд ли имеет практическое значение для оказания помощи пользователям чтобы найти информацию, которую они ищут.
-
Функция сравнения, которая требуется для сортировки семантически или фонетически полезной, слишком громоздка, чтобы рассматривать ее, особенно потому, что результаты, вероятно, были бы менее удовлетворительными, и в любом случае алгоритмы сравнения должны быть изменены для каждого языка. Лучше всего разрешить сортировку, даже не пытаясь выполнить функцию сравнения.
-
Возможно, я задал здесь неправильный вопрос. То есть я слишком много думал "внутри коробки", не учитывая, что реальный вопрос заключается не в том, как сделать сортировку полезной на этих языках, но как я могу предоставить пользователю полезный способ поиска элементов в списке. Западники автоматически думают о сортировке для этой цели, и я был виноват в этом. Ларри К указал мне на статью в Википедии, в которой предлагается функция фильтрации может быть более полезна для азиатских читателей. Это то, что я планирую проводить, по крайней мере, так же быстро, как сортировка, на стороне клиента. Я сохраню сортировку столбцов, потому что она хорошо понята на западных языках, и потому, что говорящие на любом языке найдут сортировку дат и других числовых типов данных полезными. Но я также добавлю этот механизм фильтрации, который будет полезен в длинных списках для любого языка.