4

解決策を何時間も探した後、あきらめました。これが私の問題です。localhost の私のデータベースはutf8_general_ci、私が書いた私の application.ini にあります

resources.db.params.charset = utf8

すべてがうまく機能しています。

しかし、Web サーバーでは、文字は ü または ö のように表示されます。resources.db.params = utf8 を内外でコメントしました。アウトの場合、どこの文字も問題ありませんが、どの形式 (ラベルまたは値) でもありません。オンにすると、すべての文字がこのように表示されます。同話・効果なし

$form->setAttrib('accept-charset', 'UTF-8'); 

私も試しました

resources.db.params.driver_options = "SET NAMES utf8". 

成功せずに。

PHP バージョン localhost:5.3.8 - MySql 5.0.8
PHP バージョン webserver:5.2.6 - MySql 5.0.51

4

2 に答える 2

3

これが解決策かどうかはわかりませんが、MySQL で UTF-8 を使用するために、次のように db パラメータを設定しました。

resources.db.params.charset = utf8

これを試しましたか?

[編集]

ビュー (およびフォーム) も正しいエンコーディングを使用していることを確認することもできます。

resources.view.encoding = "UTF-8"

または、ブートストラップでビューを手動でインスタンス化する場合:

$view->setEncoding("UTF-8");

これにより、フォームはビューのデフォルトを使用するため、同じエンコーディングを受け入れるようになります。

于 2012-09-07T11:52:20.087 に答える
0

データベースが utf8_general_ci-collat​​ion を使用するように正しく構成されている場合、サーバーからの HTML 応答を適切にデコードする方法をブラウザーに指示するだけなので、問題はデータベースにはあまりありません。

応答をデコードする方法をブラウザーに指示するには、次の 2 つの方法があります。

  1. Content-Type-headerに文字エンコーディングを含めます。次に、次のようになります。 Content-Type: text/html; charset=utf-8

    または、別のコンテンツ タイプについても同様です。

    Content-Type: application/json; charset=utf-8

  2. -tag<meta charset="utf-8">の最初のタグとしてaを含めます。<head>このタグを最初のタグの 1 つとして配置することが重要です。少なくとも、表示する必要があるテキストを含むタグ ( など) の前<title>

于 2012-09-07T11:55:10.953 に答える