개발! 딱 깔끔하고 센스있게!

PHP 생 성 csv 파일 은 Excel 2007 에 파운드 부 호 를 표시 합 니 다. 본문

개발 스크랩 메모/PHP

PHP 생 성 csv 파일 은 Excel 2007 에 파운드 부 호 를 표시 합 니 다.

렉사이 2020. 12. 13. 02:42

csv 파일 생 성 을 위해 서 머리 명령 을 사용 하고 있 습 니 다:

header("Content-type: text/csv; charset=utf-8; encoding=utf-8"); header('Content-Disposition: attachment; filename="products.csv"'); 

만약 내 가 Excel 2007 에서 이 문 서 를 열 었 다 면, 나 는 파운드 부 호 를 표시 해 야 할 곳 을 얻 었 을 것 이다.

그러나, 만약 내 가 Notepad + 에 이 파일 을 열 면 우물 번호 가 잘 표시 되 고, 마찬가지 로 콘 텐 츠 유형 을 text / plaain 으로 변경 하고 attachement 헤드 를 제거 하면 우물 번 호 는 브 라 우 저 에서 정확하게 표시 된다.

이상 한 것 은 제 가 Notepad + 의 "Foremat" 메뉴 로 이동 하면 파일 은 "UTF - 8 무 BOM" 으로 인 코딩 된 것 같 습 니 다.

만약 내 가 그것 을 "UTF - 8 인 코딩" 으로 바 꾼 후에 파일 을 저장 하면 파운드 기 호 는 바로 Excel 에 표 시 될 것 이다.

파일 을 PHP 로 이 인 코딩 으로 저장 할 수 있 는 방법 이 있 습 니까?

대답 하 다.

CSV 데 이 터 를 보 내기 전에 0x EF 0xBB 0xBF 를 출력 합 니 다.

처 리 를 한다 면 내용 의 길 이 를 3 으로 늘 리 는 것 을 잊 지 말 아야 한다.

header('Content-type: text/csv;'); header('Content-Length: ' + strlen($content) + 3); header('Content-disposition: attachment;filename=UK_order_' . date('Ymdhis') . '.csv'); echo "\xef\xbb\xbf"; echo $content; exit; 
Comments