PHP의 헤더를 통해 올바른 charset 정보를 보내는 데 문제가 있습니다.iso-8859-2에 대한 올바른 charset 헤더 보내기
내 코드에서 ISO-8859-2로 인코딩 된 CSV 문자열을 만들었습니다.
이 결과 파일 ISO-8859-1로서 검출$csv = 'iso-8859-2 encoded string, Łukasz Szukała';
header('Content-Type: text/csv; charset=ISO-8859-2');
header('Content-Disposition: attachment; filename=report.csv');
echo $csv;
, 편집기 (I 메모장을 사용하고 ++)과 함께 열 때이 때문에 잘못 표시 : I (간체자) 다음 코드를 사용하여 브라우저 이것을 출력하고 . UTF-8 문자열을 변환
은 다음과 같이 예상 작품 :
$csv = 'iso-8859-2 encoded string, Łukasz Szukała';
$csv = iconv('ISO-8859-2', 'UTF-8', $csv);
header('Content-Type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename=report.csv');
echo $csv;
나는이 경우에도 완전히 캐릭터 세트의 일부를 생략 할 수 있습니다.
그러나 파일을 ISO-8859-2로 인코딩해야하며 헤더 정보가 ISO-8859-2로 감지되는 파일로 이어지지 않는 이유를 알 수 없습니다. 나는 또한 IANA (http://www.iana.org/assignments/character-sets/character-sets.xhtml)에 따라 다른 별칭을 시도했지만 어떤 브라우저에서도 작동하지 않습니다.
중요한 입력에 크게 감사드립니다.
예, 파일을 로컬에 저장하면 모든 헤더 정보가 손실된다는 것을 알았습니다. –