ICU - порядок в каждом случае перед персонажем
С помощью UCollator
из ICU в C++, я хочу, чтобы заказ на все случаи жизни, прежде чем все остальное.
Несмотря на установку указанных ниже параметров, фактические символы рассматриваются перед регистром.
ucol_setAttribute(coll, UCOL_STRENGTH, UCOL_TERTIARY, &status);
ucol_setAttribute(coll, UCOL_CASE_FIRST, UCOL_LOWER_FIRST, &status);
ucol_setAttribute(coll, UCOL_CASE_LEVEL, UCOL_ON, &status);
Причиной этого желаемого порядка является повторение того, как C/C++ сравнивает символы. Примером является то, что B < a
должно быть правдой, но ucol_strcollIter
возвращается 1
(с указанием B > a
).
Вот результаты для некоторых тестов, которые я написал, которые должны пройти все:
A < a: FAIL
B < b: FAIL
a = a: PASS
B < a: FAIL
A < b: PASS
A < B: PASS
Любое предложение о том, как настроить UCollator
реализовать это будет высоко ценится.