最初から私のphpアプリケーションでは、将来の問題を回避するためにすべてをutf8で設定しました。データベースを設定しました:
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'aquitex',
'prefix' => '',
'encoding' => 'utf8',
);
public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'aquitex',
'prefix' => '',
'encoding' => 'utf8',
);
}
ファイルcore.php:
Configure::write('App.encoding', 'UTF-8');
そして、ビューのデフォルトのレイアウト:
<?php echo $this->Html->charset(); ?>
ただし、フォームのラベルなどのいくつかの要素でまだ問題があります。
私のindex.ctpファイルでは、次の行があります。
echo $this->Html->link("Segurança", array('controller' => 'Posts','action'=> 'add'), array( 'class' => 'button'));
完全に機能し、「ç」文字に問題はありません。
しかし、次のような形式で:
echo $this->Form->create('Post');
echo $this->Form->input('Nome Produto');
echo $this->Form->input(utf8_encode("Código Produto"));
echo $this->Form->input("Versão");
echo $this->Form->input('Data');
//echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->end('Criar Ficha');
フォームのラベルに「ó」または「ç」の文字が正しく表示されている単語を取得する方法はありません。ご覧のとおり、そのうちの1つでutf8encode()を試しました。
ヒントはありますか?ありがとうございました!