Почему код 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)