Почему код java не преобразует текст в символы utf8?

Моя страница JSP имеет следующую кодировку:

<%@ page
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
%>

<%

response.setHeader("Cache-control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
%>

javascript код печати греческих символов хорошо в firebug следующий код:

function save() {
console.log(document.editDistributionListForm.elements['name'].value); //this line prints greek characters
  document.editDistributionListForm.elements['subAction'].value='submit';
  document.editDistributionListForm.submit();
}

когда значение 'name', как указано выше, отправляется в действие Struts, строка не печатает греческие символы, а печатает?????????????????

Введены греческие символы: αβγδεζηθ

Struts Bean (Пример кода):

public void setName(String name) {
                this.name = name;
        }

        public String getName() {
                return name;
        }

Struts Action (Пример кода):

protected ActionForward updateList(ActionMapping mapping,
                                HttpServletRequest request,
                                EditListForm form)
                        throws CannotOverwriteExistingListException, EmptyListException,
                                ListUpdateException {
log.debug("form.getName :: "+form.getName()); //this line when printed prints (???) 

}

когда данные отправляются из HTML в Java, то есть из браузера на сервер, строка преобразуется из греческого в???? что я делаю не так Я не могу определить, что мне не хватает...

Пожалуйста помоги.

1 ответ

Решение

В UTF-8 нет греческих символов.

Я думаю, что вы должны перепрограммировать свою программу, чтобы она печатала символы UTF-16 (которые включают греческие символы). (Измените кодировку страницы с UTF-8 на UTF-16)

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