Не совсем понятно, как вы вызываете веб-сервис. Метод в веб-сервисе просто принимает строку? Если да, то как выглядит ваша строка в Java? Все строки в Java имеют кодировку UTF-16 - если вы преобразуете двоичное представление UTF-8 в строку, беря каждый байт и превращая его в символ, то это проблема.
Если бы вы могли показать, как выглядит метод, который вы вызываете, и как вы его называете, это бы очень помогло.
Для чего бы то ни было, я использовал Axis со строками не-ASCII без проблем в прошлом. Я сильно подозреваю, что это проблема с тем, как вы используете его, а не с самой Axis, хотя я хочу быть ошибочным:)
РЕДАКТИРОВАТЬ: Судя по вашему комментарию, у вас возникли проблемы с получением данных формы HTML, прежде чем вы подключитесь к веб-службе. Если пользователь ввел «å» в форму, это то, что вы должны увидеть при отладке в Eclipse. Если вы помещаете неверные данные в свой веб-сервис, неудивительно, что вы выводите неверные данные на другом конце. Я предлагаю вам запустить WireShark , чтобы увидеть точно то, что отправляет вам браузер, как с точки зрения необработанных байтов, так и с точки зрения кодировки содержимого, которое он указывает. Я предполагаю, что ваш веб-сервер воспринимает его как ISO-8859-1, но на самом деле это UTF-8.
Как только вы правильно получили строку из формы, я подозреваю, что вы обнаружите, что нет никаких проблем при передаче ее в веб-службу.