php上传文件中文文件名乱码的解决方法_PHP
可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱码的原因与解决办法吧。
这几天在windows下安装了XAMPP,准备初步学习一下php的相关内容。这几天接触到了php上传文件,但是出现了一个郁闷问题,我准备上传一个excel文件,但是如果文件名是中文名就会报错。
一来二去很是郁闷,后来仔细想了想应该是文件编码的问题,我写的php文件使用的是UTF-8编码,如果没有猜错APACHE处理用的应该是GBK(当然现在我无法确定,希望高手给与指教)。想明白了这个问题,就去查找相关的教程了,索性找到了iconv这个函数。
函数原型:string iconv ( string in_charset, string out_charset, string str )
使用例子:$content = iconv("GBK", "UTF-8", $content);
这个例子的作用就是将$content从GBK转换成UTF-8编码。
乱码问题关键代码:
复制代码 代码如下:
$name=iconv("UTF-8","gb2312", $name);
move_uploaded_file($tmpname, $this->final_file_path);
$name=iconv("gb2312","UTF-8", $name);
除了这样来解决上传文件中文乱码问题,我们还可以把上传文件重新命名即可。
例
复制代码 代码如下:
$sFileName = "sda.php";
$sOriginalFileName = $sFileName;
$sExtension = s str($sFileName, (strrpos($sFileName, '.') + 1));//找到扩展名
$sExtension = strtolower($sExtension);
$sFileName = date("YmdHis").rand(100, 200).".".$sExtension; //这样就是我们的新文件名了,全数字的不会有乱码了哦。
以下是一些补充:
php上传中文文件名乱码解决方案
复制代码 代码如下:
$filepath="upload/";
$name=$filepath.$_FILES["upfile"]["name"];
while(file_exists($name)){
$temp=explode(".",$name);//分割字符串
$name=$temp[0]."0".".".$temp[1];//主文件名后面加0
}
复制代码 代码如下:
//iconv()函数是关键
if(move_uploaded_file($_FILES["upfile"]["tmp_name"],iconv("UTF-8","gb2312",$name))){//处理...}
我的PHP编码是UTF-8,其中原因可能是因为操作系统是GBK的原因!
注意:我的服务器是windows xp、apache,估计xp字符集是gbk。因为我的php代码保存为utf-8格式的,在给文件名命名时会出现乱码的情况,所以可以用iconv()函数将原本的utf-8格式的文件名转换为gbk格式的。
php utf8编码 上传中文文件名出现乱码的解决方法
想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,我们可以用iconv函数对文件名进行重新编码就解决问题了。
复制代码 代码如下:
header("Content-Type:text/html;charset=utf-8");
$submit = $_POST['submit'];
if(isset($submit) && trim($submit) != ''){
$file = $_FILES['file'];
if(isset($file['tmp_name'])){
$name = iconv('utf-8','gb2312',$file['name']); //利用Iconv函数对文件名进行重新编码
if(move_uploaded_file($file['tmp_name'],$name)){
echo '文件上传成功!';
echo '图片信息:';
print_r($file);
}
}
}
?>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











잘못된 단어 페이지 번호에 대한 해결 방법: 1. 단어 문서를 열고 왼쪽 상단에 있는 "파일" 옵션을 클릭합니다. 2. "추가" 옵션을 선택한 다음 "옵션" 버튼을 클릭합니다. 4. "문서 내용 표시"에서 "필드 값 대신 필드 코드 표시"를 찾아 앞에 있는 확인 표시를 제거한 후 확인을 클릭하여 홈 페이지로 돌아갑니다.

Linux 중국어 왜곡 문제는 중국어 문자 세트 및 인코딩을 사용할 때 흔히 발생하는 문제입니다. 잘못된 파일 인코딩 설정, 시스템 로케일이 설치 또는 설정되지 않음, 터미널 디스플레이 구성 오류 등으로 인해 문자가 깨질 수 있습니다. 이 문서에서는 몇 가지 일반적인 해결 방법을 소개하고 특정 코드 예제를 제공합니다. 1. 파일 인코딩 설정을 확인하십시오. 파일 인코딩을 보려면 터미널에서 file 명령을 사용하십시오. 출력에 "charset"이 있는 경우.

Linux tty의 중국어 문자 문제 해결 방법: 1. "sudo apt-get install fbterm" 명령을 통해 fbterm 글꼴을 다운로드합니다. 2. "sudo fbterm" 명령을 실행합니다. 3. 글꼴 및 글꼴 크기를 "font-names"로 변경합니다. =Ubuntu Mono 글꼴- 크기=14”이면 충분합니다.

잘못된 Tomcat 시작에 대한 해결 방법: 1. Tomcat의 conf 구성 파일 수정 2. 명령줄 창 인코딩 수정 4. Tomcat 서버 구성 확인 6. 로그 확인 파일 7, 다른 해결 방법을 시도해 보세요. 자세한 소개: 1. Tomcat의 conf 구성 파일을 수정하고, Tomcat의 conf 디렉터리를 열고, "logging.properties" 파일을 찾습니다.

Windows 10 시스템에서는 잘못된 문자가 일반적입니다. 그 이유는 종종 운영 체제가 일부 문자 집합에 대해 기본 지원을 제공하지 않거나 문자 집합 옵션 설정에 오류가 있기 때문입니다. 올바른 약을 처방하기 위해 실제 수술 과정을 아래에서 자세히 분석해 보겠습니다. Windows 10 잘못된 코드를 해결하는 방법 1. 설정을 열고 "시간 및 언어"를 찾습니다. 2. 그런 다음 "언어"를 찾습니다. 3. "언어 설정 관리"를 찾습니다. 4. 여기에서 "시스템 지역 설정 변경"을 클릭합니다. 5. 표시된 대로 확인하고 클릭합니다. 그냥 확인하세요.

win11에서 텍스트 문서가 왜곡되는 문제를 해결하는 방법은 무엇입니까? 많은 사용자가 win11 시스템을 사용하면 텍스트 문서가 깨져서 정상적으로 읽을 수 없습니다. 많은 친구들이 이 문제를 해결하는 방법을 모릅니다. 사실 이 방법은 어렵지 않습니다. 아래에서 편집자는 Windows 11 시스템 문서가 왜곡된 문제를 해결하는 단계를 정리했습니다. 이것이 여러분에게 영감을 줄 수 있기를 바랍니다. 왜곡된 Windows 11 시스템 문서를 해결하는 단계: 1. 먼저 win11의 제어판을 열고 아래 검색 상자에 제어판을 입력한 후 검색을 클릭하여 제어판에 들어갑니다. 2. 패널 진입 후 시계와 지역을 찾아 클릭하여 진입한 후 지역 옵션을 클릭하세요. 3. 입력 후 관리 패널을 클릭한 후 시스템 지역 설정 변경을 클릭합니다.

많은 사용자가 컴퓨터를 사용할 때 접미사 dll이 포함된 파일이 많이 있지만 이러한 파일을 여는 방법을 모르는 사용자가 많다는 것을 알게 될 것입니다. 알고 싶은 사용자는 다음 세부 정보를 살펴보십시오. 튜토리얼~열기 방법 dll 파일 편집: 1. "exescope"라는 소프트웨어를 다운로드하여 설치합니다. 2. 그런 다음 dll 파일을 마우스 오른쪽 버튼으로 클릭하고 "exescope로 리소스 편집"을 선택합니다. 3. 그런 다음 팝업 오류 프롬프트 상자에서 "확인"을 클릭하십시오. 4. 그런 다음 오른쪽 패널에서 각 그룹 앞에 있는 "+" 기호를 클릭하면 해당 그룹에 포함된 콘텐츠를 볼 수 있습니다. 5. 보려는 dll 파일을 클릭한 다음 "파일"을 클릭하고 "내보내기"를 선택합니다. 6. 그러면 할 수 있다

일부 친구는 메모장을 열고 싶어하는데 win11 메모장이 깨져서 무엇을 해야 할지 모릅니다. 실제로 우리는 일반적으로 지역과 언어만 수정하면 됩니다. Win11 메모장이 깨졌습니다. 첫 번째 단계에서는 검색 기능을 사용하여 "제어판"을 검색하고 엽니다. 두 번째 단계에서는 시계 및 지역 아래에서 "날짜, 시간 또는 숫자 형식 변경"을 클릭합니다. 세 번째 단계에서는 카드 위의 "관리" 옵션을 클릭합니다. 네 번째 단계는 아래의 "시스템 지역 설정 변경"을 클릭하는 것입니다. 다섯 번째 단계는 현재 시스템 지역 설정을 "중국어(간체, 중국)"로 변경하고 "확인"을 클릭하여 저장하는 것입니다.
