gpt4 book ai didi

php - 将 php 输出导出为 excel

转载 作者:行者123 更新时间:2023-12-02 05:25:05 25 4
gpt4 key购买 nike

include_once 'mysqlconn.php';
include_once "functions.php";
$filename = $_GET['par'].".xls";
header("Content-type: application/x-msexcel");
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
if ($_GET['i'] == "par1") {
func1();
} else if ($_GET['i'] == "par2") {
echo "şşşıııİİİ";
func2();
} else if ($_GET['i'] == "par3") {
echo "şşşıııİİİ";
func3();
}

这是我的 export2excel.php 文件,func1、2、3 在 functions.php 文件中并生成表格输出,除了以一种奇怪的方式进行字符编码外,所有工作都很好。我的所有文件都使用 utf-8 编码。上面的第二个 else if 语句产生了健康的编码输出,但其余 2 个是用奇怪的字符对我的输出进行编码,例如“BãœTÇE İÇİ”。在土耳其语中是“BÜTÇE İÇİ”。

简而言之。相同的文件,相同的编码,相同的数据库,但结果不同。

有什么想法吗?

最佳答案

Excel 使用 UTF-16LE + BOM作为默认的 Unicode 编码。
因此,您必须将输出转换为 UTF-16LE 并在前面加上 UTF-16LE-BOM "\xFF\xFE"

一些进一步的信息:

相反,我会使用现有的库之一

编辑:
如果您真的不想想使用现有的库,一些代码可能会有所帮助

<?php
$output = <<<EOT
<table>
<tr>
<td>Foo</td>
<td>IñtërnâtiônàlizætiøöäÄn</td>
</tr>
<tr>
<td>Bar</td>
<td>Перевод русского текста в транслит</td>
</tr>
</table>
EOT;

// Convert to UTF-16LE
$output = mb_convert_encoding($output, 'UTF-16LE', 'UTF-8');

// Prepend BOM
$output = "\xFF\xFE" . $output;

header('Pragma: public');
header("Content-type: application/x-msexcel");
header('Content-Disposition: attachment; filename="utf8_bom.xls"');

echo $output;

关于php - 将 php 输出导出为 excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3465791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com