символ с вкладками в UTF8

Я пытаюсь создать выходной файл xls из моей таблицы mysql, и мне нужно UTF8-кодирование файла export.php из-за словацких символов — но … когда я конвертирую его в UTF8, мой скрипт не может печатать символ \ t

// part of export.php

header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=export.xls");
header("Pragma: no-cache");
header("Expires: 0");
$sql = ("select * from zakaznici");
$db->query("SET NAMES 'utf8'");

if (!$result = $db->query($sql))
{
die('There was an error running the query [' . $db->error . ']');
}

// define separator (defines columns in excel & tabs in word)

$sep = "\t"; //tabbed character

// start of printing column names as names of MySQL fields

$finfo = $result->fetch_fields();

foreach($finfo as $val)
{
printf("%s\t", $val->name);
}

print ("\n");
$schema_insert = "";

while ($ser = $result->fetch_assoc())
{
$id = $ser['id'];
$email = $ser['email'];
$password = $ser['pass'];
$schema_insert.= $id . $sep . $email . $sep . $password;
print ("\n");
}

$schema_insert = str_replace($sep . "$", "", $schema_insert);
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert.= "\t";
print (trim($schema_insert));
print "\n";

\ n символ работает нормально .. не работает только \ t с UTF8
Спасибо за помощь

1

Решение

Я предполагаю, что маркер UTF-8 отсутствует в начале сгенерированного
файл. Итак, я бы предложил добавить спецификацию перед выводом контента, вот так:

print "\xEF\xBB\xBF";
print trim($schema_insert);
print "\n";

Некоторые предлагают использовать mb_convert_encoding(), посмотреть здесь: php header excel и utf-8

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]