0

doctrine2 で配列型の問題を発見しました。

私のアプリでは、スロベニア出身のユーザーが何人かいます。これらの人は、「čćšž」のような奇妙な文字を持っています。この値がシリアル化されてデータベースに格納された後、問題が発生します。

その後、私は次の期待を取得します: /ArrayType.php 46行目

そのため、シリアライズされた文字列の次のコンテンツが期待を引き起こすことがわかりました: s:7:"Urani?"

しかし、それはウラニッチでなければなりません。文字列をutf8に変換しようとしましたが、失敗します。文字をエンコードできません!

? を入れ替えたら面白い 直接 ć を使用すると、期待どおりに機能します。また奇妙なのは、char ž が問題にならないことです。それが機能する唯一のものです。

誰でもそれを修正する方法を考えていますか?

4

1 に答える 1

1

あなたがする必要があるのは、DBに接続するときに「SETNAMESutf8」を実行するようにDBALに指示することです。charset='utf8'これは、パラメーターを構成に渡すことによって行われます。ドキュメントを読むことをお勧めします。これは、PDO MySQLとOCI(Oracle)でのみ可能ですが、MySQLを使用していると思います。

さらに、を使用してテーブルセルを作成しましたCHARACTER SET utf8 COLLATE utf8_slovenian_ciか?

于 2012-10-03T23:52:32.560 に答える