2012-12-10 2 views
0

풍부한 Javascript 클라이언트의 파일 업로드를 허용하는 Apache 웹 서버가있는 CentOS 6 시스템이 있습니다. 파일은 PHP의 move_uploaded_fileCentOS 컴퓨터에서 움라우트로 파일 저장

과 함께 저장됩니다. 클라이언트와 서버 (php) 파일은 모두 iso-8859-1로 인코딩되고 서버의 데이터베이스는 모두 인코딩됩니다. 또한, html 출력은 iso-8859-1을 charset으로 선언합니다.

움라우트 (또는 아직 알려지지 않은 다른 특수 문자)가있는 파일을 제외하고는 오류가 발생하는 것을 제외하고는 파일 업로드가 정상적으로 작동합니다. 예를 들어, 파일 1.Nachtrag Gemeinde Höchst.pdf이 응용 프로그램에서 제대로 에코, 또한 파일을 다운로드 생산되는 링크가 올바른 (URL-) 인코딩이됩니다 :

http://ourdomain/saba/data/dok/00000092/1.Nachtrag%20Gemeinde%20H%C3%B6chst.pdf 

을하지만 경우이 링크를 클릭하면 404 오류 나타납니다. 셸에서 파일을 찾을 때 1.Nachtrag Gemeinde H?chst.pdf으로 표시됩니다. 이는 쉘에 utf-8 인코딩이 있기 때문에 일종의 잘못된 인코딩을 나타냅니다.

우리는 무엇을 잊었나요? @Amadan이 정확하게 지적했듯이

+3

난 당신이 당신의 자신의 질문에 대답 생각, 저장하기 전에 UTF-8로 변환 할 수 있습니다. 'iconv'를 UTF-8로 바꾸거나 ASCII로 정규화하십시오. – Amadan

답변

0

, 필요한 파일 이름 즉 :

$filename = iconv('ISO-8859-1', 'UTF-8', $filename); 
$is_successful = @move_uploaded_file($tmp_filename, $ordnername . DIRECTORY_SEPARATOR . $filename);