2015-08-20 2 views
1

Я создал форму с использованием ZF2, когда вся моя система (страница &) находится на французском языке и имеет ISO-8859-15 кодировку. У меня нет возможности изменить эту кодировку, поэтому я думаю, нам придется иметь дело с ANSI.ZF2 - Кодирующая метка от формы

Вопрос заключается в том, что при создании моей формы, я использую этот кусок кода:

public function createAction() { 
    BootstrapLogger::info(__METHOD__); 
    $this->layout('layout/xhtml'); 
    $dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');; 
    $form = new ActionForm($dbAdapter); 

    $form->get('submit')->setValue('Créer'); 

} 

и получить эту ошибку:

Message: 
String to be escaped was not valid UTF-8 or could not be converted: Crï¿œer 

Я не понимаю, почему, ни как избегайте этого.

Как я предполагаю, это та же причина, что при создании моей формы метки также ошибочно кодируются.

$this->add(array(
      'name' => 'act_num', 
      'type' => 'Text', 
      'options' => array(
       'label' => "N° action", 
      ), 
      'attributes' => array(
       'disabled' => 'disabled', 
       'class' => 'form-control' 
      ) 
     )); 

    //ch2 - Libellé de l'action 
    $this->add(array(
      'name' => 'act_label', 
      'type' => 'Text', 
      'options' => array(
       'label' => "Libellé de l'action", 
      ), 
      'attributes' => array(
       'required' => 'required', 
       'class' => 'form-control' 
      ) 
     )); 

Это даст мне

Nᅵ action 
    Libellᅵ de l'action 

Та же проблема с содержанием избранных (которые заселена SQLdb в Lazarus [то есть в latin1_general_ci]).

Любая идея, как исправить это?

Большое спасибо заранее

ответ

0

Попробуйте указать другую кодировку для вашей формы. Не знаете, как вы используете свой InputFilter, потому что есть несколько разных способов, но добавьте это для каждого поля.

'validators' => [ 
    [ 
     'name' => 'StringLength', 
     'options' => [ 
      'encoding' => 'UTF-8', 
      'min' => 1, 
     ], 
    ], 
], 
Смежные вопросы