Как я могу изменить этот класс для поддержки немецкого языка Umlaute (äöüÄÖÜ)? Я попытался использовать utf8_encode ($ array) без succes. Также попытался изменить Content-Transfer-Encoding: binary to utf8php to excel - german Umlaute
Спасибо, что указал мне в правильном направлении.
ОБНОВЛЕНИЕ: ИЛИ что из этого кода будет причиной уничтожения Umlaute?
class NYOS_ExcelWriter_Simple
{
public function CreatFile($array)
{
$file = $this->xlsBOF(); //íà÷èíàåì ñîáèðàòü ôàéë
$tr1 = 0;
foreach($array as $k => $v)
{
$nn1 = 0;
foreach($v as $k1 => $v1)
{
$file .= $this->xlsWriteLabel($tr1, $nn1, $v1);
$nn1++;
}
$tr1++;
}
$file .= $this->xlsEOF(); //çàêàí÷èâàåì ñîáèðàòü
return $file;
}
public function LoadFile($array,$filename)
{
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Disposition: attachment;filename='.$filename);
header('Content-Transfer-Encoding: binary ');
echo $this->CreatFile($array);
}
private function xlsBOF()
{
return pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
}
function xlsEOF()
{
return pack("ss", 0x0A, 0x00);
}
private function xlsWriteNumber($Row, $Col, $Value)
{
return pack("sssss", 0x203, 14, $Row, $Col, 0x0).
pack("d", $Value);
}
function xlsWriteLabel($Row, $Col, $Value)
{
$L = strlen($Value);
return pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L).
$Value;
}
}
$NY_excel_simple = new NYOS_ExcelWriter_Simple();
Я не имею никакого отношения к вопросу, но разве вы не должны отправлять только один «Content-Type»? – steven
Вы пробовали 'utf8_encode ($ array)' или вы пробовали 'utf8_encode ($ v1)' в вашем внутреннем цикле foreach метода 'CreatFile'? Вы должны преобразовать каждое значение в utf8 вместо того, чтобы пытаться преобразовать массив. Аргумент, переданный utf8_encode, должен быть строкой ISO-8859-1, а не массивом. – steven
Я пробовал $ v1 = utf8_encode ($ v1) внутри foreach, не работал только разные неправильные символы. (также попробовал utf8_encode (массив), который ничего не выводил) –