sql >> データベース >  >> RDS >> Mysql

MySQLデータベースに英語以外のテキストを挿入する際のJSPエンコーディング

    これは、両側がそれぞれの側の文字エンコードの違いを完全に認識している場合にのみ発生します。反対側で使用されている文字エンコードでカバーされていない文字は、疑問符?に置き換えられます。 。そうでなければ、Mojibake を見たことでしょう。 。

    この特定のケースでは、これらの側はJava側とデータベース側であり、JDBCドライバーがメディエーターとして使用されます。これを修正するには、JDBCドライバーに、これらの文字がどのエンコードに含まれるかを通知する必要があります。これを行うには、useUnicode=true&characterEncoding=UTF-8を設定します。 JDBC接続URLのパラメータ。

    jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8
    

    次に、クライアントからサーバーにパラメータを送信する方法によっては、リクエストのエンコーディングも修正する必要がある場合があります。 request.setCharacterEncoding("UTF-8")を削除すると文字化けが表示されるという事実を考えると 、POSTを使用しています。その部分は問題ありません。

    その場合、GETを使用してパラメーターを送信する場合は、サーバー側でURIエンコードを構成する必要があります。使用しているサーバーは不明ですが、Tomcatなどの場合は、<Connector>を編集する必要があります。 /conf/server.xmlのエントリ 次のように:

    <Connector ... URIEncoding="UTF-8">
    

    関連項目:



    1. グループ化された実行中のMAX(またはMIN)の維持

    2. MySqlでのSUMとCONCATの奇妙な動作

    3. SQLServerでの内部結合と左結合のパフォーマンス

    4. MySQLの複数の左結合