PHP에서 업로드한 중국어 파일의 잘못된 파일 이름에 대한 해결 방법: HTML 파일의 head 태그 중간에 관련 문을 추가하여 인코딩을 통일되게 유지하세요. 코드는 [
PHP에서 업로드한 중국어 파일의 잘못된 파일 이름에 대한 해결 방법:
방법 1: 아마도 내 시스템이 깨질 수도 있습니다. 그래서 코드를 다시 작성했습니다:
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/测试数据.txt");결과가 깨졌습니다. 즉, 시스템 문제는 아닙니다. php 파일 자체는 utf8로 인코딩되어 있습니다.
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/测试数据.txt");문은 utf8로 인코딩되어야 하며, 이전에 업로드한 파일 이름은 utf8로 인코딩되어서는 안 됩니다. 소스 문자열 자체가 utf8로 인코딩되지 않았기 때문에 다음 문은 잘못된 것입니다.
iconv("UTF-8","gbk//TRANSLIT",$_FILES["file"]["name"]);함수를 사용하여 소스 문자열의 인코딩을 확인하세요:
$e=mb_detect_encoding($text, array(‘UTF-8’, ‘GBK’,’gb2312’));2 echo $e;결과는 CP936입니다. 즉, 소스 문자열 인코딩은 GBK입니다.
시도해보세요
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . iconv("gbk","UTF-8",$_FILES["file"]["name"]));문제가 해결되었습니다. 문자가 더 이상 깨지지 않습니다
방법 2:사실 , HTML 파일의 헤드에 추가하는 또 다른 해결책이 있습니다. 태그 중간에
결론<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />를 추가하여 인코딩을 통일되게 유지하면 더 이상 트랜스코딩할 필요가 없습니다
iconv 기능을 사용하면 업로드 시 중국어 파일 이름이 왜곡되는 문제를 해결할 수 있습니다. 실제로 iconv는 다양한 문제를 해결할 수 있습니다. 이러한 잘못된 코드 문제는 일관성 없는 인코딩으로 인해 발생합니다.
- 소스 문자열의 인코딩을 확인하세요. iconv 기능을 사용하기 전에 소스 문자열의 인코딩을 이미 결정하지 않은 경우
- 모든 코드의 인코딩이 일치하는지 확인하고 최후의 수단으로 iconv 기능을 사용하세요. 서버에 저장된 파일명으로 중국어 파일명을 사용하지 마세요. 파일명을 자신의 파일명으로 변환해주세요. (영어 파일명도 변환해주세요)
- 관련 학습 권장 사항:
PHP 프로그래밍 입문부터 주인님
위 내용은 PHP로 업로드한 중국어 파일의 파일명이 깨졌을 경우 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!