2017-11-17 19 views
0

私は訪問したときにSQLクエリを実行し、結果を含むCSVを作成し、その結果を私にメールで送るページを持っています。PHPでCSVファイルを作成して、日本語の文字とメール、文字に変換していますか?

DBの日本語文字は正しくエンコードされておらず、CSVファイルにはちょうどありますか?それぞれの日本語の文字の代わりに。

私は "Content-Encoding"、 "Content-Transfer-Encoding"、 "Content-Type"を変更しようとしました。どこに東京があるべきか

これは、オンザフライで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クエリ文字セットを設定することでした

を見つけました。

関連する問題