2011-01-05 3 views
0

문제점 :Java 및 Struts 1.1 특수 문자 처리

양식이 텍스트 상자와 함께 제출됩니다. alt + 0174를 사용하여 (등록 상표) 문자가있는 문자열을 입력합니다. (R) 기호가 브라우저에 올바르게 표시됩니다. 내가 BaseTilesRequestProcessor에 중단 점 I 요청에 파고 텍스트 상자에 해당하는 값을 찾을 경우

(I 요청을 검사 알고 가능한 한 빠른 점)으로 제출 명중

, 그것은 내 문자열을 가지고 (R) 기호가 있지만 (R) 직전에 이상한 문자가 있습니다. Â

이 질문을 제출하기 전에 여기에서 대답을 찾았습니다 : http://ianpurton.com/struts-utf-8-and-form-submissions 그 기술을 사용했는데 제대로 작동했습니다. 그래서 제 질문은, 왜 이것이 효과가 있습니까? 이 필터가 적용되기 전에 request.getCharacterEncoding()을 확인했는데 null이었습니다. 이 속성을 설정하는 것은 무엇입니까? 브라우저가 제출하고 있습니까?

감사합니다!

답변

1

예, 브라우저 일 수 있습니다. 제출하는 동안이 속성을 설정할 수 있지만, 발견 한 링크가 올바르게 지적되어 있으므로 대부분의 브라우저는 기본적으로이를 설정하지 않습니다. 결과적으로 Struts 1의 기본값이 무엇이든간에 UTF-8이 아닌 것입니다. getCharacterEncoding()을 체크했을 때 NULL이라는 사실은 브라우저가 그러한 헤더를 보내지 않는다는 것을 확인합니다.