베트남어 업로드를 위해 PHP에서 UTF-8 파일 이름을 처리하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-30 12:10:26
원래의
1032명이 탐색했습니다.

How to Handle UTF-8 Filenames in PHP for Vietnamese Uploads?

PHP - 업로드 중 UTF-8 파일 이름 처리

UTF-8 파일 이름이 포함된 업로드를 처리할 때 보장하기 어려울 수 있습니다. 문자가 정확하게 보존됩니다. 이는 분음 부호와 비라틴 문자를 사용하는 베트남어와 같은 언어에 특히 관련이 있습니다.

PHP에서 UTF-8 파일 이름을 처리하려면 파일 시스템 기능이 기본적으로 UTF-8 파일 이름을 지원하지 않을 수 있으므로 특별한 고려 사항이 필요합니다. 제공된 코드 예제에 설명된 대로:

<code class="php"><?php
    if(isset($_POST["submit"])) { 
       if($_FILES["upload"]["error"] > 0 ) echo "FILE ERROR!"; 
       else 
         { 
           $base_dir = "D:/"; 
           $fn = $_FILES["upload"]["name"]; 

           $fn2 = $base_dir . $fn;

           move_uploaded_file($_FILES["upload"]["tmp_name"], $fn2); 
         } 
     } 
?></code>
로그인 후 복사

이 코드는 베트남어 이름의 파일 "Tên Tep Tiếng Viđ.JPG"를 업로드하려고 시도합니다. 하지만 업로드 시 잘못된 문자 처리로 인해 컴퓨터에서 결과 파일 이름이 "Tên Tệp Tiếng Việt.JPG"로 렌더링됩니다.

이 문제를 해결하려면 PHP 파일 시스템 함수에서 파일 이름을 처리하기 전에 파일 이름을 시스템의 코드 페이지로 변환하는 데 필요합니다. 코드 페이지는 운영 체제에서 사용 가능한 문자를 정의하는 설정입니다.

특정 운영 체제와 기본 코드 페이지에 따라 두 가지 잠재적인 해결 방법이 있습니다.

옵션 1: 파일 이름 문자 제한

여기에는 파일 이름의 문자를 시스템 코드 페이지에서 지원하는 문자(귀하의 경우 일반적으로 ASCII(437))로 제한하는 작업이 포함됩니다. 이렇게 하면 파일 이름이 정확하게 보존되지만 특정 베트남어 문자의 사용이 제한됩니다.

옵션 2: 시스템 코드 페이지 변경

이를 위해서는 시스템 코드를 변경해야 합니다. 제어판의 지역 설정을 통해 베트남어(1258) 페이지로 이동합니다. 변경이 완료되면 파일 이름을 CP1258로 변환하세요. 그러면 PHP 파일 시스템 기능으로 적절하게 처리할 수 있습니다.

<code class="php">$fn2 = iconv("UTF-8","cp1258", $base_dir . $fn);</code>
로그인 후 복사

이러한 접근 방식 중 하나를 선택하면 베트남어 UTF-8 파일 이름이 올바르게 처리되도록 할 수 있습니다. PHP로 업로드하는 동안.

위 내용은 베트남어 업로드를 위해 PHP에서 UTF-8 파일 이름을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿