Нечетные символы в CSV для знака фунта

Я написал функцию (в WordPress) для загрузки файла CSV, как показано ниже.

function download_csv(){

if( !empty($_GET['filename']) && !empty($_GET['downloadname']) && file_exists( trailingslashit( wsoe_upload_dir() ).$_GET['filename'].'.csv' ) && wsoe_is_shop_manager() ) {

$download_filename = $_GET['downloadname'];
$filename   = trailingslashit( wsoe_upload_dir() ).$_GET['filename'].'.csv';
$charset = get_option('blog_charset');
$settings = self::advanced_option_settings();

$file = fopen( $filename, 'r' );
$contents = fread($file, filesize($filename));
fclose($file);

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header('Content-Encoding: '. $charset);
header('Content-type: text/csv; charset='. $charset);
header("Content-Disposition: attachment; filename=$download_filename.csv");
header("Expires: 0");
header("Pragma: public");

$fh = @fopen( 'php://output', 'w' );

if( !empty($settings['wsoe_fix_chars']) ){

/**
* This is a fix for Microsoft Excel. It may happen that some weird characters
* may appear while viewing the csv on excel with MAC OS.
*/

$contents = mb_convert_encoding( $contents, 'UTF-16LE', $charset );
$contents = chr(255) . chr(254).$contents; // Add byte order mark
}

fwrite( $fh, $contents );
fclose($fh);
exit();

}
}

Когда csv экспортируется, знак фунта (£) не отображается должным образом при просмотре. Я проверил это во всех редакторах, включая Excel, Notepad ++, OpenOffice и т. Д.

Это выглядит так

Символ валюты выглядит как символ барахла

Кто-нибудь может дать мне знать, как я могу решить эту проблему?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]