PHP - Windows에서 UTF-8 파일 이름 처리
문제 설명
UTF-8로 인코딩된 파일 이름이 포함된 파일을 업로드하면 Windows에서 문자가 왜곡됩니다.
제안된 솔루션
이 문제를 해결하기 위한 원래 제안에서는 iconv() 함수를 사용하여 파일 이름을 CP1258과 같은 Windows 시스템과 호환되는 코드 페이지로 변환하는 것이 포함되었습니다. 그러나 이 접근 방식에는 제한이 있습니다.
업데이트된 솔루션
실제로 PHP 파일 시스템 함수는 시스템의 활성 코드 페이지 내에 있는 문자만 처리할 수 있습니다. 따라서 두 가지 가능한 해결책이 있습니다.
옵션 1:
- 파일 이름 문자를 시스템의 코드 페이지로 제한합니다(예: 귀하의 경우 CP437)
- 이 옵션은 베트남어 문자의 사용을 제한합니다.
옵션 2:
- 시스템 코드 페이지를 베트남어로 변경합니다(예: CP1258). )
- 파일 이름을 새 코드 페이지로 변환합니다(예: $fn2 = iconv("UTF-8","cp1258", $base_dir.$fn);)
- 이 옵션도 파일 이름 문자를 베트남어 코드 페이지 1258로 제한합니다.
두 옵션의 단점:
-
옵션 1: 불가능 특정 베트남어 문자 사용
-
옵션 2: 시스템 코드 페이지 변경 요구 사항 및 파일 이름 문자 제한
시스템 코드 페이지 변경에 대한 추가 정보
시스템 코드 페이지를 변경하려면:
- 제어판 > 지역
- "관리" 탭 선택
- "유니코드를 지원하지 않는 프로그램용 언어"에서 "시스템 로케일 변경" 버튼 클릭
- "베트남어(베트남)" 선택 드롭다운 메뉴에서
위 내용은 Windows의 PHP에서 UTF-8 파일 이름을 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!