Выпадающий список CakePHP form builder не сохраняет французские акценты

#cakephp #character-encoding #special-characters

#cakephp #кодировка символов #специальные символы

Вопрос:

Метка отображается правильно, но по какой-то причине параметры в выпадающем меню этого не делают.

 echo $form->input('job_category', array('label'=>'Emploi Catamp;eacute;gorie',
        'options'=>array('Activitamp;eacute;s commerciales gamp;eacute;namp;eacute;rales')
    ));
  

он выдает следующий HTML:

 <option value="0">Activitamp;amp;eacute;s commerciales gamp;amp;eacute;namp;amp;eacute;rales</option>
  

должно быть:

 Activités commerciales générales
  

Ответ №1:

Если вам действительно нужно использовать ссылки на символьные сущности, я считаю, что добавление 'escape' => false во входной массив должно сделать это.

Но реальный ответ таков: вообще не используйте ссылки на символьные сущности. Убедитесь, что на HTML-странице используется UTF-8, а код сохранен как UTF-8, и вы можете нормально вводить символы с ударением в коде.

Комментарии:

1. Спасибо! Я знаю, что это должно быть в UTF-8, но приложение просто не работает, и это просто быстрое исправление, которое я должен был сделать для французской версии сайта.

2. Ты спаситель жизни .. 🙂 VU

Ответ №2:

почему бы вам этого не сделать?

 echo $form->input('job_category', array('label'=>'Emploi Catégorie',
        'options'=>array('Activités commerciales générales')
    ));
  

Комментарии:

1. и убедитесь, что вы используете utf8 везде! это все, что нужно. нет amp; … вещи

Ответ №3:

Это случилось со мной, когда я использовал испанские акценты, вам нужно установить параметр escape в false, чтобы cake не экранировал специальные символы

 echo $form->input('job_category', array('label'=>'Emploi Catamp;eacute;gorie',
        'options'=>array('Activitamp;eacute;s commerciales gamp;eacute;namp;eacute;rales'),
        'escape' => false
    ));