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 реализовать это будет высоко ценится.

0 ответов

Другие вопросы по тегам