>  기사  >  백엔드 개발  >  PHP fopen 함수가 Windows 시스템에서 중국어 이름의 문서를 생성할 때 문자가 깨지는 문제에 관하여

PHP fopen 함수가 Windows 시스템에서 중국어 이름의 문서를 생성할 때 문자가 깨지는 문제에 관하여

WBOY
WBOY원래의
2016-07-30 13:31:231216검색

우리 모두 알고 있듯이 PHP의 fopen 함수는 새 문서를 생성할 수 있지만 생성한 문서의 이름이 중국어이고 Windows 시스템을 사용하는 경우 문서 이름의 중국어 부분이 왜곡되다. 실험해 봅시다:

PHP 스크립트(UTF-8 인코딩)

<code><span><?php </span><span>$fileName</span> = <span>__DIR__</span> . <span>'/中文文档.txt'</span>;
<span>//$fileName = iconv('UTF-8', 'GBK', $fileName);</span><span>$fp</span> = fopen(<span>$fileName</span>, <span>'w'</span>);
fwrite(<span>$fp</span>, <span>'这是中文内容'</span>);
fclose(<span>$fp</span>);
<span>?></span></span></code>

위 스크립트를 실행하고 새로 생성된 문서를 찾아보세요:
PHP fopen 함수가 Windows 시스템에서 중국어 이름의 문서를 생성할 때 문자가 깨지는 문제에 관하여
보시다시피 문서 이름은 왜곡되어 있지만 문서의 내용은 그렇지 않습니다.

해결책

위 PHP 스크립트에서 코드의 두 번째 문장의 주석을 제거하고 $fileName를 UTF-8 인코딩에서 GBK 인코딩으로 변환한 후 다시 스크립트를 실행하여 찾아보세요. 문서 이름 더 이상 잘못된 문자가 없습니다:
不PHP fopen 함수가 Windows 시스템에서 중국어 이름의 문서를 생성할 때 문자가 깨지는 문제에 관하여

마침내

현재 이 상황은 Windows 시스템에서만 발견되고 Mac OS/Linux에서는 정상이므로 작동합니다. Unix/Linux 시스템에서는 괜찮습니다. 문서 이름의 인코딩을 변환할 필요가 없습니다. 문서 이름을 GBK 인코딩으로 변환하려고 하면 다음과 같이 왜곡됩니다.
PHP fopen 함수가 Windows 시스템에서 중국어 이름의 문서를 생성할 때 문자가 깨지는 문제에 관하여

저작권 표시: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위 내용은 PHP fopen 함수를 사용하여 Windows 시스템에서 중국어 이름의 문서를 만들 때 발생하는 문자 왜곡 문제를 소개하며, 관련 측면도 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.