Perl ORM Rose :: DB :: ObjectとMySQLテーブル/カラム照合utf8_general_ci
を使用します。データを保存するためのコード:Mojoliciousの中のデータを取得するためのMySQLとPerlで漢字が異常なのはなぜですか?
Motorcycle->new(
type => $self->param('type'),
brand => $self->param('brand'),
color => $self->param('color')
)->save;
コード(コードがutf8::decode
と同等です):
<td><%= Mojo::ByteStream->new($cycle->type)->decode('utf-8') %></td>
<td><%= Mojo::ByteStream->new($cycle->brand)->decode('utf-8') %></td>
<td><%= Mojo::ByteStream->new($cycle->color)->decode('utf-8') %></td>
漢字は自分のアプリケーションで罰金に見えますが、彼らはphpMyAdminの中で奇妙に思えます。私がphpMyAdminに文字を保存すると、phpMyAdminでは問題なくなりますが、私のアプリケーションでは奇妙に見えます。
私はそれをSQLiteとFirefox SQLiteアドオンでテストしましたが、Firefox SQLiteアドオンと私のアプリケーションの両方で文字が正常に見えます。
これはサーバーの問題だと思います。 PerlをPHPと融合させると、災害になる可能性があります。
ありがとうございました。
次のように解決済み:
__PACKAGE__->use_private_registry;
__PACKAGE__->default_connect_options(mysql_enable_utf8 => 1);
__PACKAGE__->register_db(
driver => 'mysql',
database => 'test',
host => 'localhost',
username => 'root',
password => '',
その中で、この行を追加することが重要:
__PACKAGE__->default_connect_options(mysql_enable_utf8 => 1);
バックデータを読み取る際に必要ありませんデコード。
、アプリケーションとのphpMyAdminの 'のcharset =' MIMEパラメータを確認してください。 Apacheの設定、php.ini、アプリケーション、およびphpmyadminにもデフォルト値が設定されていることを確認してください。
私は最も可能性の高い問題であると思われるものに基づいて答えを投稿しました。それがうまくいかない場合は、テキストがどのように「奇妙に見えますか」という具体的な例を示しておけば助けになります。 –