CSV从UTF8到ISO-8859-1 [英] CSV from UTF8 to ISO-8859-1

查看:256
本文介绍了CSV从UTF8到ISO-8859-1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试修改CSV导出. 但这不会将我的CSV文件从UTF-8转换/保存为ISO-8859-1

i am trying to modify my CSV export. But it wont convert / save my CSV from UTF-8 to ISO-8859-1

任何想法,请问我做错了什么?

Any Ideas what i have made wrong, please?

实际上,由于修改了此内容,我得到了一个空的CSV文件...

Actually since modifying this, i get a empty CSV File...

(php 7.0.x)

(php 7.0.x)

function my_GenerateCSV($prefix, $csvarray, $getMonth){
    ### Generate CSV File from CSVArray
    if ($prefix == 'sepa'){ 
        $date = '-'.getTodaysDate();
    } 
    $month = $getMonth;
    $filename = 'private/'.$prefix.'-'.$month.$date.'.csv';
    $fp = fopen(ROOTDIR . '/'.$filename, 'w');
    foreach ($csvarray as $key => $value) {
        //fputcsv($fp, $value, ';');
        fputcsv($fp, convertToISOCharset($value), ';');
    }
    fclose($fp);
    return $filename;
}

function convertToISOCharset($string) {

  $string =  mb_convert_encoding($string, "ISO-8859-1", "UFT-8");
  return $string;
}

解决方案:

function convertToISOCharset($array)
{
    foreach($array as $key => $value)
    {
        if(is_array($value))
        {
            $array[$key] = convertToISOCharset($value);
        }
        else
        {
            $array[$key] = mb_convert_encoding($value, 'ISO-8859-1', 'UTF-8');
        }
    }

    return $array;
}

推荐答案

解决方案应要求提供:

function convertToISOCharset($array)
{
    foreach($array as $key => $value)
    {
        if(is_array($value))
        {
            $array[$key] = convertToISOCharset($value);
        }
        else
        {
            $array[$key] = mb_convert_encoding($value, 'ISO-8859-1', 'UTF-8');
        }
    }

    return $array;
}

这篇关于CSV从UTF8到ISO-8859-1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆