簡體   English   中英

PHP-將Unicode轉換為CSV,例如漢字

[英]PHP - Convert Unicode for CSV, e.g. chinese characters

通過表單發布,我們將數據傳遞到PHP腳本,該腳本為電子表格程序(例如excel)創建可下載的CSV。 如果未傳遞特殊字符,則下面的scipt可以完美工作。 但是傳遞特殊字符(如中文字母)以unicode結尾。

示例:我們通過表單字段將“你好世界”(hello world,unicode:你好世界)發送到此php腳本export.php

<?php //opens a download dialog, download by excel
header("Content-type: text/csv; charset=UTF-8");
header("Content-Disposition: attachment; filename=\"eCalc Results.csv\"");
echo html_entity_decode(urldecode($_POST["exportData"])); 
// returns unicode &#20320;&#22909;&#19990;&#30028;
?>

我們如何將這個Unicode轉換為CSV,使中文字母再次正確顯示為你好世界...?

這里是示例: http : //s4a.ch/exporttest/hello.php

我們搜索了整個stackoverflow,但是沒有成功轉換...

感謝您的幫助eCalc

...找到了解決方案:

首先,不是使用javascript encode()而是使用encodeURI()對發送方進行編碼,並使用

<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />

在標題中。

...這里是export.php(已插入BOM表!)

<?php

header("Content-Encoding: UTF-8"); 
header("Content-Disposition: attachment; filename=\"eCalc Results.csv\"");
header("Content-type: text/csv; charset=UTF-8");
echo "\xEF\xBB\xBF"; // first send the UTF-8 BOM for Excel

echo html_entity_decode(urldecode($_POST["exportData"]));
?>

您可能會研究PHP文檔的這一部分: http : //php.net/manual/en/function.utf8-encode.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM