PHP:使用特殊字符导出为CSV

我正在尝试导出存储在表中的一些数据,但是当我尝试导出到CSV时这封信č 显示像Ä或&amp;#269。</ p>

我尝试过utf8_decode,utf8_enconde,html_entity_decode,但是没有用。 我该怎么办?</ p>

谢谢,
Leandro。</ p>

其他信息:现在我直接测试以下内容:</ p>

  $ delimiter =“;”; 
$ enclosure ='“';

header(”Content-Disposition:attachment; filename = memorandos.csv“);
header(”Pragma:no- cache“);
header(”Expires:0“);
$ output = fopen('php:// output','w');

$ header = array('Apellido');
fputcsv ($ output,$ header,$ delimiter,$ enclosure);
$ memorando = Memorando :: getById(3263);
if($ memorando){
$ dd = array();
$ dd [] = $ memorando-&gt; apellido; ////数据库存储如Jurič
fputcsv($ output,$ dd,$ delimiter,$ enclosure);
}
</ code> </ pre>

在文件中我看到这个Juri&amp;#269;而不是Jurič</ p>
</ div>

展开原文

原文

I am trying to export some data that is stored on a table but when I tried to export to CSV this letter č shows like Ä or &#269.

I tried everithing utf8_decode, utf8_enconde, html_entity_decode, but is not working. What can I do?

Thanks, Leandro.

Additional Information: Now I directly testing the following:

$delimiter = ";";
$enclosure = '"';

header("Content-Disposition: attachment; filename=memorandos.csv");
header("Pragma: no-cache");
header("Expires: 0");
$output = fopen('php://output', 'w');

$header = array('Apellido');
fputcsv($output, $header, $delimiter, $enclosure);
$memorando = Memorando::getById(3263);
if ($memorando){
    $dd = array ();
    $dd[] = $memorando->apellido;   ////ON THE DATABSE IS STORED LIKE Jurič
    fputcsv($output, $dd, $delimiter, $enclosure);
}

On the file I see this Juri&#269 ; instead of Jurič

douzhou7037
douzhou7037 不要更改字符,更改页面\文件编码
5 年多之前 回复
dongsuoxi1790
dongsuoxi1790 欢迎来到StackOverflow!这个问题有点缺乏信息。你可以分享你尝试过的东西,你遇到了什么问题?请阅读如何在StackOverflow上提问
5 年多之前 回复

1个回答



处理这个问题有很多角度和方法,你甚至可以尝试:ISO-8859-1 </ p>

假设你有</ p>

  $ input =“FóøBårZacarías?S?B?DFerreíra”;  //原始文本
</ code> </ pre>

使用iconv删除特殊字符</ p>

  $ output = iconv(“  utf-8“,”ascii // TRANSLIT // IGNORE“,$ input); 
</ code> </ pre>

Regexp允许删除除空格外的utf-8特殊字符</ p >

  $ output = preg_replace(“/ ^'| [^ A-Za-z0-9 \ s-] |'$ /”,'',$ output);

</ code> </ pre>

结果:Foo Bar Zacarias ASABAD Ferreira </ p>

  echo $ output; 
</ code> < / pre>

你的代码在哪里? 你可以分享吗?</ p>
</ div>

展开原文

原文

There are many angles and approaches of dealing with this issue, you can even try: ISO-8859-1

Lets say you have

$input = "Fóø Bår Zacarías ?S?B?D Ferreíra"; // original text

Use iconv to get rid of the special chars

$output = iconv("utf-8", "ascii//TRANSLIT//IGNORE", $input);

Regexp lets remove utf-8 special characters except blank spaces

$output =  preg_replace("/^'|[^A-Za-z0-9\s-]|'$/", '', $output); 

Results in: Foo Bar Zacarias ASABAD Ferreira

echo $output;

And where is your code? can you share?

druybew06513
druybew06513 我分享了我最新的测试。 感谢您的回复,但是通过该解决方案,角色从Ä转换为c,我需要看到Ä。 谢谢。
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问