日语字符在我的出口中出现乱码.php


Japanese character gets garbled in my export.php

>我有导出到导出中的csv函数.php。该功能工作正常。只是日语字符的显示是这样的:‰∫àÁ¥ÑÊ∏à"Åø当我在页面和 csv 文件中回显变量时。

字符集已经使用 UTF-8。它在其他页面中显示正常。我不知道下一步该怎么做。

这是我的代码:

public function excel()
{
    $student_id = $_GET['student_id'];
    $lesson = &Chico::getInstance('Controller_Frontend_Lesson');
    $defaults = &Chico::getInstance('Model_Defaults');
    $get_lesson_history = $lesson->lesson_history(get_user_meta($student_id, 'gge_access_token', true));
    $convert_lesson_time = $lesson->convert_lesson_time($get_lesson_history);
    $lesson_history = $lesson->sort_history($convert_lesson_time);
    $count = 1; $lesson_count = $this->get_lesson_count($lesson_history);
    header('Content-Type: text/csv;charset=utf-8'); 
    header(sprintf('Content-Disposition: attachment;Filename=%s.csv', get_user_meta($student_id, 'gge_name', true)));
    $outstr  = sprintf('PERIOD, %s ~ %s %s', !empty($_GET['begin']) ? $_GET['begin'] : 'Beginning', !empty($_GET['end']) ? $_GET['end'] : 'Present', "'n");
    $outstr .= sprintf('STUDENT NAME, %s %s', get_user_meta($student_id, 'gge_name', true), "'n");
    $outstr .= sprintf('SKYPE ID, %s %s', get_user_meta($student_id, 'gge_skype', true), "'n");
    $outstr .= sprintf('NUMBER OF BOOKINGS, %s %s', $lesson_count, "'n");
    $outstr .= sprintf('NUMBER OF LESSONS, %s %s', $lesson_count, "'n'n");
    $outstr .= '#, DATE/TIME, TEACHER, STATUS, LESSON, REQUEST, COMMENT';
    $outstr .= sprintf('%s', "'n");
    if(!empty($lesson_history) && is_array($lesson_history)):
        foreach ($lesson_history as $key => $value) { 
            $lastkey  = count($value)-1;
            $launched = strtotime($value[$lastkey]['launched']);
            $datetime = sprintf('%s %2$s:00 ~ %2$s:50', date(__(get_option( 'date_format' )), $launched), date(__('H'), $launched));
            if(strtotime($_GET['begin']) <= $launched && strtotime(sprintf('%s+1 days', $_GET['end'])) >= $launched):
                $outstr.= join(',', array($count, $datetime, 
                                            $value[$lastkey]['teacher_name'],
                                            $defaults::$status_ja[$value[$lastkey]['status']], 
                                            $value[$lastkey]['request_title'],
                                            $value[$lastkey]['request_body'],
                                            $value[$lastkey]['scores']['message']));
                $outstr .= sprintf('%s', "'n");
                $count++;
            endif;
        } 
    else: 
            $outstr.= join(',', 'No lesson history');
    endif;
    echo $outstr;
}

以下是 csv 格式的数据: 状态课程SAMMY ‰∫àÁ¥ÑÊ∏à"ÅøKREAN ‰∫àÁ¥ÑÊ∏à"Åø


默认情况下,Excel 使用 Windows-1252 编码打开 CSV 文件。尝试使用文本编辑器或 Open Office(您可以在其中选择字符集)打开 CSV 文件。