2012-01-09 12 views
0

コンテンツを翻訳することができるZend Frameworkを使って書かれたCMSアプリケーションがあります。これはドイツ語とフランス語の文字には完全に機能しますが、ポーランド語とは苦労しています。私はデータベースと接続を正しく設定していますが、私はまだガーベッジを保存してポーランド語に戻しています。データベースはutf8_general_ciで、フィールドもフィールドです。 Doctrineの接続のparams: resources.entityManager.connection.charsetは= "UTF8" resources.entityManager.connection.default.parameters.driverOptions.1002 = "SET NAMES 'UTF8'"磨き文字を格納するutf8 doctrine 2 PHP、MySQL、Zend Framework

ページデータベースフォームを投稿して翻訳は以下のとおりです: header( 'Content-type:text/html; charset = utf-8'); (先頭のタグ) [meta-http-equiv = "Content-Type" content = "text/html; charset = utf8" /](先頭のタグ)

私は、 databse(教義2):

$cn->setContent($pageForm->getValue($field)); 

ので、フランス語とドイツ語がこれにはかなり満足しているが、次のポーランド:produkcjizawieszeÅワット specjalisty:produkcjizawieszeńワット specjalistyは、として

店舗とビューをszybkość "、SzybkoÅ>ć

私はこのサークルで回っていますので、どんな考えも非常に高く評価されます。

答えて

3

_initDoctrineに追加()関数を試してみてくださいそこではなく、ブートストラップまたはあなたがZend Frameworkのと教義を設定どのように応じて、今後の参考のため

'charset' => 'utf8', 'driverOptions' => array(1002=>'SET NAMES utf8') 
0

私は

$strBefore = 'specjalisty w produkcji zawieszeń, szybkość'; 
putdb($strbefore); 
$strAfter = getdb(); 
var_dump($strBefore === $strAfter, $strBefore, $strAfter); 
echo base64_encode($strBefore); 
echo base64_encode($strAfter); 
+0

ありがとうございます。 â€「ºÃâprodukcjizawieszeÃワットspecjalisty ...â€Zを、szybkoÃ...」 'ブール値(false)の文字列(46) "produkcjizawieszeńワットspecjalisty、szybkość" 文字列(76):ここで – ed103

+0

は、デバッグから出力され、 €¡」c3BlY2phbGlzdHkgdyBwcm9kdWtjamkgemF3aWVzemXFhCwgc3p5YmtvxZvEhwの== c3BlY2phbGlzdHkgdyBwcm9kdWtjamkgemF3aWVzemXDg + KApsOi4oKsxb4sIHN6eWJrb8OD4oCmw6LigqzCusOD4oCew6LigqzCoQの==提案のための ' – ed103

0

のデバッグを支援するために、次を使用し、私は今、「produkcjizawieszeń、szybkośćwはspecjalisty」ポーランド語の文字列デシベルから表示すると、それは格好良いですチェックしました。 (ZF 1.11、教義1.2)

私はエンティティマネージャと行くために必要な設定を経由して接続し、実際の問題は、私が教義2にUTF8を設定した方法だった

$conn->setCharset('utf8'); 
+0

感謝。私の接続はEntityManagerで作成されているので、そこに追加しました: '$ options = array( \t 'connection' => array( 'driver' =>" {$ config-> connection-> driver} "$ config-> connection-> dbname}"、 'user' => "{$ config-> connection-> dbname} Connection(接続) - > Connectユーザー}」、 'パスワード' => "{$ CONFIG-> Connection(接続) - > Connectパスワード}"、 '文字セット' => "UTF8" ) ); ' しかし、これは効果がありませんでした。 – ed103

+0

私はzend_dbを使って同じポーシャンのテキストを追加しました。それでいいので、doctrine 2.0やdoctrine 2の設定に問題があると思います。私はutf8に文字セットを設定しました。少なくとも私はデータベースが正常であることを知っています。ありがとう。 – ed103

1

のapplication.ini、のapplication.iniの以下の行をあなたのためにこれを解決することがあります。

doctrine.connectionParameters.charset = "UTF8" 
6

設定で'charset' => 'utf8'orm_defaultに設定すると私のケースで問題が解決しました。

<?php 
return array(
    'doctrine' => array(
     'connection' => array(
      'orm_default' => array(
       'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 
       'params'  => array(
        'host'  => 'localhost', 
        'user'  => 'dbuser', 
        'password' => 'dbpass', 
        'dbname' => 'dbname', 

        'charset' => 'utf8', 
       // ^^^^^^^^^^^^^^^^^^^^^ 
       ) 
      ) 
     ), 
     'driver'  => array(
      'zfcuser_entity' => array(
       'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 
       'paths' => 'module/Application/src/Application/Entity', 
      ), 
      'orm_default' => array(
       'drivers' => array(
        'Application\Entity' => 'zfcuser_entity', 
       ), 
      ), 
     ), 
    ), 
    'zfcuser' => array(
     'user_entity_class'  => 'Application\Entity\User', 
     'enable_default_entities' => false, 
    ), 
); 
+0

あなたはormを介してdoctrineコンソールからデータベースを生成するときに照合を強制する方法を教えてください:schema-tool:update? –

+1

@MarcelDjamanあなたは '' charset '=>' utf8 'の後に '' driverOptions '=>配列(1002 =>" SET NAMES' UTF8 'COLLATE' utf8_unicode_ci '")を追加すると確認できます。 –

+0

申し訳ありませんが今すぐ再現できますが、 '' driverOptions '=> array(1002 =>' SET NAMES utf8 ') 'のみで終了するとどういうことがありますか –

関連する問題