Если вы используете Linux, вы можете легко проверить эту команду с помощью этой команды
java -version ; \
echo 'System.err.println(javax.crypto.Cipher.getInstance("AES/CBC/PKCS5Padding").getMaxAllowedKeyLength("AES"));' \
| java -cp /usr/share/java/bsh-*.jar bsh.Interpreter >/dev/null
Если вывод похож на этот, криптография с неограниченной силой недоступна
java version "1.7.0_76"
Java(TM) SE Runtime Environment (build 1.7.0_76-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.76-b04, mixed mode)
128
Это связано с тем, что при отсутствии функции обратного вызова элементы сортируются после преобразования в кодовые единицы UTF-16. В вашем случае это может быть причиной того, что преобразованная в utf строка для Kelvin
находится перед brandy
, поэтому она сортируется в таком порядке.
Используйте localeCompare
const ary = ["Kevin", "brandy", "Andrew"];
const nary = ary.sort(function(a, b) {
return a.localeCompare(b)
});
console.log(nary);
Один ответ лайнера является localeCompare()
const ary = ["Kevin", "brandy", "Andrew"];
ary.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});
console.log(ary);