C#からMySQLへの操作で、日本語文字列が文字化けする事象が発生しました。
その詳細と対応方法を説明していきます。
発生した事象
日本語文字列をC#で作成した画面で入力して、入力された内容をMySQLのデータベースに INSERT したり、UPDATE したりすると、データベース上の値で文字化けが発生しました。
データベースに対して、日本語の文字列が「??」で登録されてしまう文字化けの現象にドハマリしました。
文字列関連なので、MySQLのcharacter_set_*** の設定や、データベースやテーブル項目の型・キャラクタセットを見直してみても問題なかったです。
対応方法
接続文字列に Charset=utf8;
を追加すると、文字化けしなくなりました。
string connect = "userid='○○○'; password='○○○'; database='○○○'; Host='○○○'; Charset='utf8';";
サーバ接続に必要な情報のほかに「Charset=’utf8’」を追加しました。
結果、これで正常に文字列が登録できました。
なんでも明示的にするのが無難のようです。
コメント