Veröffentlicht 3. April 201114 j Hi, ich habe mir vor ein paar Tagen ein Buch zu CakePHP gekauft und versuche nun die Beispiele nachzubauen. Bei der Ausgabe einer View bekomme ich immer eine Fehlermeldung: Warning (2): htmlentities() [function.htmlentities]: charset `2' not supported, assuming iso-8859-1 [CORE\cake\libs\view\helpers\html.php, line 298] Code | Context $title = "Details" $url = "/cakephp/jobs/jobs/view" $options = "2" $confirmMessage = false $escapeTitle = "2" htmlentities - [internal], line ?? HtmlHelper::link() - CORE\cake\libs\view\helpers\html.php, line 298 include - APP\views\jobs\index.ctp, line 21 View::_render() - CORE\cake\libs\view\view.php, line 731 View::render() - CORE\cake\libs\view\view.php, line 426 Controller::render() - CORE\cake\libs\controller\controller.php, line 909 Dispatcher::_invoke() - CORE\cake\dispatcher.php, line 207 Dispatcher::dispatch() - CORE\cake\dispatcher.php, line 171 [main] - APP\webroot\index.php, line 83 Fatal error: Cannot unset string offsets in C:\xampp\htdocs\cakephp\cake\libs\view\helpers\html.php on line 303 Die View sieht so aus: <table> <tr> <th>ID</th> <th>Firma</th> <th>Titel</th> <th>Angebot vom</th> <th>zuletzt Aktualisiert</th> <th>Aktionen</th> </tr> <?php foreach($jobs as $job): ?> <tr> <td><?php echo $job['Job']['id']; ?></td> <td><?php echo $job['Job']['company']; ?></td> <td><?php echo $job['Job']['title']; ?></td> <td><?php echo $job['Job']['created']; ?></td> <td><?php echo $job['Job']['modified']; ?></td> <td> <?php echo $this->Html->link('Details', 'jobs/view',$job['Job']['id']); ?> <?php echo $this->Html->link('bearbeiten', 'jobs/edit',$job['Job']['id']); ?> <?php echo $this->Html->link('löschen', 'jobs/delete',$job['Job']['id']); ?> </td> </tr> <?php endforeach; ?> </table> Der Zeichensatz der DB-Tabelle ist latin1_swedish_ci und der von meinen php und ctp Dateien ist ISO 8859-1. Webserver ist eine Xampp Installation unter Win 7, PHP Version ist 5.3.5, CakePHP ist Version 1.3.8.0 Was mache ich da falsch?
5. April 201114 j Du solltest es vermeiden versch. Zeichensätze zu verwenden. Gewöhn dir am Besten heute schon an UTF-8 zu verwenden und zwar überall - es sei den du programmierst für den asiatischen Raum dann UTF-16. In der app/config/core.php findest du den Eintrag Configure::write('App.encoding', 'UTF-8'); dort "könntest" du auf diverse Standards umstellen. Davon rate ich dir aber dringend ab. Ändere in deiner DBMS die Kollation auf utf8_general_ci. Achte darauf, das sowohl die Tabellen als auch die Datenbank selbst auf diese Kollation eingerichtet sind. Um Darstellungsfehler in Browsern zu vermeiden solltest du <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> dem Client die Kodierung bekannt machen. Hoffe das hilft Auch bei dem in Webbrowsern verwendeten HTML setzt sich UTF-8 zur Darstellung sprachspezifischer Zeichen zunehmend durch und ersetzt die vorher benutzten HTML-Entities[3]. Wikiepdia.de
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.