왜 내가 nginx가 잘못된 인코딩으로 일부 정적 이미지를로드하려고하는지 알아 내려고합니다. 예 :Nginx : utf8 문자 인코딩 정적 파일
하는 error.log 가입일:
2012년 8월 8일 21시 14분 46초 [오류] 17,968 # 0 * 71 열기() "/ 홈/WWW/사용자 도메인 .com/WEB-INF/images/productimage/image-ö¸.png " 실패 (2 : 해당 파일 또는 디렉토리 없음), 클라이언트 : xxxx, 서버 : www.mydomain.com, 요청 :"이미지/productimage/화상 - % C3 % B8.png HTTP/1.1 "호스트"www.mydomain.com "추천자 : "http://www.mydomain.com/ "
내 nginx.conf 파일에 다음을 추가했습니다.
source_charset utf-8;
charset utf-8;
그러나 불행히도, 그것은 그것을 해결하지 못했습니다.
내 가상 호스트 설정 파일은 다음을 사용하여 이미지 파일을 제공합니다.
location /images/
{
alias /home/www/mydomain.com/WEB-INF/images/;
expires 15d;
}
LANG 환경 변수를 그대로 사용하여 우분투를 사용하고 있습니다.
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
실마리? 감사 !
안녕하십니까, 답장을 보내 주셔서 감사합니다. 마지막 명령 줄을 통해 perl을 통해 이스케이프 해제를 테스트했으며 perl은 /images/productimage/image-ø.png 대신 /images/productimage/image- productimage/image-ø.png, 당신의 제안이 옳다는 것을 알았습니다. /images/productimage/image-%F8.png 인코딩을 사용하면 이미지가로드됩니다. 그래서 perl/nginx의 경우 기본 디코딩 문자 세트를 결정합니다 ? – Marius
마리우스, 내 대답에 추가했습니다 : "이미지 참조가 포함 된 HTML 페이지의 인코딩을 확인하십시오 .HTTP 헤더와 메타 태그를 모두 검토하고 명시 적으로 UTF-8로 선언해야합니다.그렇지 않으면 브라우저가 참조를 잘못 해석 할 수 있습니다. " –
해결책의 그 부분은 있지만이 경우 브라우저에서 직접 URL을 호출하면 html 페이지에 포함되지 않고, % C3 % B8로 urlencoded, 우분투에서 디코딩, nginx 또는 구성 가능한 문자 세트를 구성합니다. – Marius