このシナリオを見てみましょう。ユーザーが任意の種類のテキスト (UTF8 または中国語またはアラビア語の文字) をコピーできるテキストボックスがあり、そのテキストを MySQL DB に挿入するための [送信] ボタンがあります。
通常、私は使用URLEncoder.encode(text,"UTF-8")
しており、私のアプリは非常に安定して動作します。テキストがエンコードされているため、ユーザーが特殊文字を挿入したかどうかは心配していなかったので、テキストを読んだときにデコードしただけで、テキストは以前とまったく同じようになりました.
しかし、MySQLやTomcatサーバーなどでUTF8を設定できるのでエンコードする必要がないという人もいますが、このソリューションには構成が必要であり、あまり健全なソリューションではないため、構成が嫌いです。
さらに、ユーザーはジャンク コードを入力して DB をハッキングすることもできます。
では、Java と MYSQL では、テキストを DB に挿入するときにテキストをエンコードすることをお勧めしますか?
他のフォーラムの一部の人々は、エンコードされたテキストを DB に保存するのは非常に悪いと述べていますが、なぜ悪いのかについては述べていません。
したがって、この質問は、Java と MySQL の経験が豊富な人に向けたものです。