PR

【C#】データベース(MySQL)のテキスト文字列が文字化けするとき

C#

C#からMySQLへの操作で、日本語文字列が文字化けする事象が発生しました。

その詳細と対応方法を説明していきます。

発生した事象

日本語文字列をC#で作成した画面で入力して、入力された内容をMySQLのデータベースに INSERT したり、UPDATE したりすると、データベース上の値で文字化けが発生しました。

データベースに対して、日本語の文字列が「??」で登録されてしまう文字化けの現象にドハマリしました。

文字列関連なので、MySQLのcharacter_set_*** の設定や、データベースやテーブル項目の型・キャラクタセットを見直してみても問題なかったです。

対応方法

接続文字列に Charset=utf8; を追加すると、文字化けしなくなりました。

string connect = "userid='○○○'; password='○○○'; database='○○○'; Host='○○○'; Charset='utf8';";

サーバ接続に必要な情報のほかに「Charset=’utf8’」を追加しました。
結果、これで正常に文字列が登録できました。

なんでも明示的にするのが無難のようです。

コメント

タイトルとURLをコピーしました