データベース(MySQL)のテキスト文字列が文字化けするとき
C#でGUIアプリケーションを開発しています。
たまにドハマリすることがあるので備忘録をかねて記事を書きます。
【開発環境】C#(VisualStudio)、MySQL(WorkBench)
テキスト文字列が文字化けする
データベース(MySQL)に対して、INSERTやUPDATEのSQL文を発行したとき
日本語の文字列が「??」で登録されてしまう文字化けの現象にドハマリしました。
文字列関連なので、対象の設定や項目の型を見直してみても「TEXT型」や「VARCHAR型」で問題なさそうです。
調べていくとテーブルの設定にあるということが分かりました。
「Charset」が「utf8mb4」の設定になっています。
この設定自体は問題なさそうです。
もしやと思い、SQLの接続の際に明示的に指定します。
string conn = "userid='○○○'; password='○○○'; database='○○○'; Host='○○○'; Charset='utf8mb4';";
サーバ接続に必要な情報のほかに「Charset=’utf8mb4’」を追加しました。
結果、これで正常に文字列が登録できました。うまくいきました。
なんでも明示的にするのが無難のようです。
以上、「データベース(MySQL)のテキスト文字列が文字化けするとき」でした。