나는 잠시 동안이 책을 읽었습니다. 데이터베이스에서 데이터를 가져 오는 PHP 스크립트에서 .csv 파일을 만들려고합니다. 제 문제는 특수 문자가 올바르게 표시되지 않는다는 것입니다.php to csv 및 특수 문자
이상한 점은 데이터베이스에서 가져온 특수 문자가 올바르게 표시된다는 것입니다.하지만 항목에 특정 문자를 추가해야합니다.
예를 들어, 데이터베이스는 "Humidité"(습도에 대해 불어)를 반환합니다. 내 보낸 .csv 파일에 올바르게 표시됩니다.
그러나
내가Humidité: 10% [weird characters] 20%
그래서 humidité에서 "é"는 괜찮 표시됩니다 나는 CSV에서 내 PHP 스크립트
$member->humidity . ': 10% à 20%';
에서 문자열을 추가 말할 수 있지만 돈 "à"PHP에서 추가 된 것을 볼 수 없습니다. 일부 특수 문자가 올바르게 내 생각 엔이 문제가 내 아파치 서버에서 오는 것입니다 그래서
$data = the whole csv file in a string
header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header("Content-Disposition: attachment; filename=file.csv");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header("Content-Length: " . strlen($data));
echo "\xEF\xBB\xBF"; // UTF-8 BOM
echo $data;
표시되기 때문에
내 헤더는 확인을 보인다.
내가 찾은 this 내 php.ini에서 내 default_charset = "utf-8"
을 변경하고 그것을 해결하지 못한 나의 httpd.conf 파일에 AddDefaultCharset UTF-8
을 추가했습니다.
아이디어가 있으십니까? 감사합니다.
mysql의 테이블이 UTF 8 형식입니까? –
@TuhinSubhraDey 아니요. "latin1_swedish_ci"에 있습니다. –
UTF8 일반 CI로 변경하고 데이터를 저장하고 나머지 작업을하십시오. –