개발 스크랩 메모/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;