Problém s kódováním řetězce
- Stejsky
- Člen | 7
Ahoj,
potřeboval bych poradit s divným kódováním řetězce. Nemyslím si, že to
je vyloženě Nette chyba, proto se případně omlouvám za offtopic.
Potřebuju zpracovávat XLS soubor a používám k tomu knihovnu PHPExcel
(„https://github.com/PHPOffice/PHPExcel“).
Mám ovšem problém s kódováním. Buňka obsahuje například text
Kroužkový blok s boční spirálou. Uložím si to do proměnné a
když dám Debugger::dump, vypíše se mi Krou\xc5\xbekov\xc3\xbd blok
s bo\xc4\x8dn\xc3\xad spir\xc3\xa1lou. Přitom echo vypíše řetězec
správně.
V tomhle tvaru se mi ten řetězec ani neuloží do DB. Už jsem na tom
strávil několik hodin používáním všech možnejch návodů, co jsem na
internetu našel, ale nejsem schopnej to nijak vyřešit.
<?php
private function processLine($rowData)
{
$entity = new ProductEntity();
$entity->code = $rowData[0][0];
$entity->description = $rowData[0][7];
dump($entity->description);
// Vypíše Krou\xc5\xbekov\xc3\xbd blok s bo\xc4\x8dn\xc3\xad spir\xc3\xa1lou
echo $entity->description;
// Vypíše (správně) Kroužkový blok s boční spirálou
$this->mitapModel->addItem($entity);
// Uloží jenom code, description zůstane prázdný
}
?>
Budu vděčný za jakoukoliv radu.
- Jan Tvrdík
- Nette guru | 2595
Asi máš to $this->mitapModel->addItem
rozbitý. Zapni
debugger a chybu odstraň.
- Stejsky
- Člen | 7
Když jsem si ve třídě Selection dumpnul $result v metodě insert,
dostanu toto:
‚Nette\Database\ResultSet #02fb
connection private ⇒ Nette\Database\Connection #8822
supplementalDriver private ⇒ Nette\Database\Drivers\MySqlDriver #d149
connection private ⇒ Nette\Database\Connection #8822
pdoStatement private ⇒ PDOStatement #fdcd
queryString ⇒ „INSERT INTO mitap_product
(id
,
code
, description
) VALUES (NULL, '325844‘, ?)“
(84)
result private ⇒ NULL
resultKey private => –1
results private ⇒ NULL
time private ⇒ 0.13172388076782
queryString private ⇒ „INSERT INTO mitap_product
(id
, code
, description
) VALUES (NULL,
‚325844‘, ?)“ (84)
params private ⇒ array (1)
0 ⇒ „Krou\xc5\xbekov\xc3\xbd blok s bo\xc4\x8dn\xc3\xad spir\xc3\xa1lou,
eurod\xc4\x9brov\xc3\xa1n\xc3\xad, perforace, 80 list\xc5\xaf.\nProdejn\xc3\xad
jednotka: 1 ks.\x00“ (103)
types private ⇒ NULL'