2017-11-17 21 views
0

나는 방문했을 때 SQL 쿼리를 수행하고 결과가 포함 된 CSV를 만든 다음 그 결과를 전자 메일로 보낸다.PHP에서 일본어 문자로 이메일을 보내고 문자를 변환하는 CSV 파일을 만드시겠습니까?

그러나 DB의 일본어 문자가 제대로 인코딩되지 않고 CSV 파일에 수신되는 문자가 있습니까? 각각의 일본어 문자 대신에.

나는 작동하는 설정을 얻을 수있는 "콘텐츠 인코딩", "콘텐츠 전송 인코딩", "콘텐츠 형식"을 변경하려고했지만 아무리 내가하려고 무엇을 여전히 볼 수 없었다?

이 東京해야하는 곳은 파리에서 CSV를 생성하고 전송 내 코드입니다.

$headers = "From: ".$email_from; 


$random_hash = md5(date('r', time())); 
$mime_boundary = "==Multipart_Boundary_x{$random_hash}x"; 


$headers .= "\nMIME-Version: 1.0\n" . 
"Content-Type: multipart/mixed;\n" . 
" boundary=\"{$mime_boundary}\""; 


$email_message = "This is a multi-part message in MIME format.\n\n" . 
"--{$mime_boundary}\n" . 
"Content-Type:text/html; charset=\"UTF-8\"\n" . 
"Content-Transfer-Encoding: UTF-8\n\n" . 
$this->email_html_msg . "\n\n"; 

$files_attached_cnt = 0; 
foreach ($this->arr_file_data AS $file_data) { 

    $csv_file = $this->buildCSV($file_data, $mysqli); 

    if ($csv_file != "") { 
    $files_attached_cnt += 1; 

    $data = $csv_file; 

    $email_message .= "--{$mime_boundary}\n"; 

    $email_message .= "Content-Type: application/csv; charset=\"UTF-8\"\n" . 
    " name=\"{$file_data['csv_file_name']}\"\n" . 
    "Content-Disposition: attachment;\n" . 
    " filename=\"{$file_data['csv_file_name']}\"\n" . 
    "Content-Transfer-Encoding: UTF-8\n" . 
    "Content-Encoding: UTF-8\n\n" . 
    $data . "\n\n"; 
    } 
} 

$email_message .= "--{$mime_boundary}--\n"; 

$this->arr_file_data = array(); 

if ($this->debugFlag) { 
    echo "FINISHED."; 
} 

코드를 완전히 변경해야합니까, 아니면이 경우 사용할 수있는 인코딩 설정이 있습니까? 사전

답변

0

에서

덕분에 바로 mysqli 개체를 지정한 후

내가이

$mysqli->set_charset('utf8'); 

을 추가, 내가 실제로 쿼리를 시작하기 전에 대답은 UTF8로 내 SQL 쿼리 캐릭터 세트를 설정하는 것이었다 발견 .