현재 위치: > 최신 기사 목록> FPUTCSV를 사용하여 CSV 파일을 저장할 때 파일 인코딩 형식을 제어하여 차량 코드를 피하는 방법은 무엇입니까?

FPUTCSV를 사용하여 CSV 파일을 저장할 때 파일 인코딩 형식을 제어하여 차량 코드를 피하는 방법은 무엇입니까?

M66 2025-06-22

1. FPUTCSV 기능 소개

PHP의 FPUTCSV 함수는 CSV 파일에 다양한 데이터를 작성하는 데 사용됩니다. CSV 파일의 생성 및 쓰기를 처리하는 것이 일반적인 기능입니다. fputcsv 의 기본 구문은 다음과 같습니다.

 fputcsv($file, $fields, $delimiter = ',', $enclosure = '"', $escape_char = '\\');

매개 변수 $ 파일은 파일 핸들이고 $ fields는 작성 될 배열, $ Delimiter는 구분 기, 기본값은 쉼표이며 $ enclosure 는 필드를 둘러싼 문자, 기본값은 이중 인용문이며 $ Escape_char 는 탈출 문자입니다.

2. 일반적인 문제

Windows 및 Linux와 같은 여러 운영 체제에서 CSV 파일을 열면 문제가 발생할 수 있습니다. 이는 다른 운영 체제 및 응용 프로그램에서 사용하는 불일치 기본 문자 인코딩 때문입니다. 예를 들어 Windows는 기본적으로 GBK 또는 Windows-1252 인코딩을 사용하는 반면 Linux 및 MacOS는 UTF-8 인코딩에서 더 일반적으로 사용됩니다.

3. 인코딩 형식을 제어하기위한 전략

3.1 mb_convert_encoding을 사용하여 인코딩을 변환합니다

다른 환경에서 파일을 올바르게 표시 할 수 있도록 mb_convert_encoding 함수를 사용하여 FPUTCSV를 사용하여 데이터를 작성하기 전에 데이터 인코딩을 통합 인코딩 형식으로 변환 할 수 있습니다. 일반적으로 UTF-8 인코딩을 사용하는 것이 좋습니다.

 // 데이터가 중국인이라고 가정합니다
$data = ['이름', '나이', '도시'];
$data = array_map(function($value) {
    return mb_convert_encoding($value, 'UTF-8', 'auto'); // 자동으로 식별하고 변환합니다 UTF-8
}, $data);

$file = fopen('output.csv', 'w');
fputcsv($file, $data);
fclose($file);

이 방법을 사용하면 CSV 파일의 각 열 내용이 UTF-8로 인코딩되어 차량 문제를 피합니다.

3.2 UTF-8 인코딩을 지원하기 위해 BOM 헤더 설정

UTF-8 인코딩 된 파일은 때때로 Excel과 같은 특정 프로그램에 의해 인코딩 된 ANSI로 잘못 인식됩니다. 이 문제를 해결하기 위해 파일 시작시 UTF-8 (바이트 주문 마커)의 BOM을 추가 할 수 있습니다. 이렇게하면 파일이 Excel에 올바르게 표시되도록합니다.

 $file = fopen('output.csv', 'w');

// 추가 BOM 머리
fwrite($file, "\xEF\xBB\xBF");

$data = ['이름', '나이', '도시'];
fputcsv($file, $data);

fclose($file);

3.3 Excel의 기본 인코딩을 수정하십시오

경우에 따라 Excel이 CSV 파일을 열면 인코딩 메소드를 직접 설정할 수 있습니다. 이 방법이 모든 시나리오에 반드시 적용되는 것은 아니지만, 차량 코드 문제를 해결하는 대안입니다. 이는 CSV 파일의 URL에서 인코딩 형식을 지정하여 수행 할 수 있습니다.

 $fileUrl = 'http://m66.net/downloads/csv/output.csv';

물론이 방법은 파일이 URL 형식으로 직접 다운로드 될 때에 적합하며 사용자는 다운로드 프로세스 중에 인코딩 메소드를 지정합니다.

3.4 강제 출력 특정 인코딩 형식으로

때로는 CSV 파일을 지정된 인코딩 형식 (예 : GBK)으로 내보낼 필요가 있습니다. 각 행의 데이터는 쓰기 전에 MB_CONVERT_ENCODING을 통해 대상 인코딩 형식으로 변환 할 수 있습니다.

 $data = ['이름', '나이', '도시'];
$data = array_map(function($value) {
    return mb_convert_encoding($value, 'GBK', 'UTF-8'); // 할 것이다 UTF-8 로 돌아갑니다 GBK
}, $data);

$file = fopen('output.csv', 'w');
fputcsv($file, $data);
fclose($file);

이 방법은 중국의 Windows Systems에서 사용하기에 적합하며 기본적으로 GBK 인코딩을 사용하여 Excel로 인한 차량 코드를 방지합니다.

4. 요약

인코딩 문제가 발생하는 것은 PHP의 fputcsv 함수를 사용할 때 일반적인 과제입니다. 파일 인코딩 형식을 제어하고 다른 시스템 및 응용 프로그램에서 파일이 올바르게 표시되고 차량 코드를 피하면 다음 방법을 사용할 수 있습니다.

  • mb_convert_encoding을 사용하여 데이터를 통합 인코딩 형식으로 변환하십시오.

  • Excel이 UTF-8 인코딩을 올바르게 인식하도록 UTF-8 BOM 헤더를 추가하십시오.

  • 요구에 따라 GBK와 같은 다른 문자 인코딩을 선택하여 다른 운영 체제에 적응하십시오.

  • 부분 호환성 문제를 피하기 위해 URL에서 인코딩 메소드 (예 : M66.net )를 직접 지정하십시오.

이러한 기술을 통해 CSV 파일을 내보낼 때 차량 코드 문제를 피하고 사용자 경험을 향상시킬 수 있습니다.