質問: ### 前提・実現したいこと jspのフォームからmySqlのテーブルにINSERTした時、文字化けして保存されます。 my.cnfファイルを以下の様に変更し、その後再起動しましたが、改善されませんでした。![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/f819397a94d8ba51f82cbe8f18995d13.png) 文字コードを確認すると、以下の様になっていました。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/8b10f73f5382dc7c1284a90eca35c180.png) character_set_system だけutf8mb4に変更できていませんが、 これが原因なのでしょうか? 解決策を探しましたが情報が見当たらなかった為、解決方法もしくは原因をご教示いただけると幸いです。 よろしくお願い致します。
回答: 大抵の文字化けは、から送信されたパラメータのエンコードを指定していないのが原因です。 ``` import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class FormSample */ @WebServlet("/FormSample") public class FormSample extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String name = request.getParameter("name"); log(name); } } ``` utf-8で構成されているJSPやデータベースであれば、 ``` request.setCharacterEncoding("utf-8"); ``` を指定すると、リクエスト情報の文字コードはutf-8であると認識します。 他にも文字化けしているかどうかは、EclipseやIntelliJ IDEAなどのIDEにてデバッグモードで起動し、ブレークポイントで停止させてその値を確認する方法が一番堅実でしょう。