将非ASCII字符打印到CSV文件中

Rui*_*ves 3 php csv non-ascii-characters

我正在尝试使用php创建一个CSV文件.如何打印非ascii字符?

Rob*_*Ros 10

可以在CSV文件中使用unicode字符,只需确保使用正确的HTTP标头.这在OpenOffice中效果很好,但是如果我记得正确的Excel在显示带有unicode字符的CSV文件时会遇到一些问题.

此外,你应该尝试使用fputcsv,它使事情更容易.当您即时创建文件时,您可以使用php输出流.

所以像这样:

$handle = fopen("php://output", "w");

header("Content-Type: text/csv; charset=UTF-8");
fputcsv($handle, $fields, ';', '"');

fclose($handle);
Run Code Online (Sandbox Code Playgroud)

编辑
阅读你的评论后,似乎你有转换htmlentities的问题é.要转换这些实体,您必须确保每个字段都已解码.您可以使用html_entity_decode执行此操作,如下所示:

$decoded_string = html_entity_decode($string, ENT_QUOTES, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)

顺便说一句,大多数时候在数据库中存储带有htmlentities的文本并不是一个好主意,因为当你不想输出html时(就像在这种情况下)你必须将它们转换回真实的字符.将文本存储为unicode更容易.