При вызове ajax вам необходимо использовать encodeURIComponent()
для кодирования перед отправкой на сервер.
$('.js-example-basic-single').select2({
ajax: {
url : 'Controller',
cache: false,
data: function (params) {
var query = {
search : encodeURIComponent(params.term),
type : 'public'
};
return query;
}
}
});
А на сервере вам нужно декодировать эти символы в UTF-8.
String search = request.getParameter("search");
search = java.net.URLDecoder.decode(search , "UTF-8");