![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
お世話になります。
C#でMySQLにアクセスしようとしています。
文字列以外はできているのですが、文字列の入力、
取得で文字化けしてしまいます。
対処の方法をご指導いただけますよう、お願いいたします。
下記がコードになります。
string myConnectionString = "Database=test;Data Source=localhost; User Id=root;Password=''";
MySqlConnection myConnection = new MySqlConnection(myConnectionString);
string mySelectQuery = "insert into characters values('5','あいうえおかきくけこ','10','3')";
↑この文字列が化ける
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection);
myConnection.Open();
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
myReader.Close();
myConnection.Close();
mySelectQuery = "SELECT * FROM characters";
myCommand = new MySqlCommand(mySelectQuery, myConnection);
myConnection.Open();
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
MessageBox.Show(myReader.GetString(0) + ", " + myReader.GetString(1));
}
myReader.Close();
myConnection.Close();
なお、MySQLはUTF-8を基準にしています。
以上、よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
俺だったら…
ZIP Archiveの方で公開されているソースを見ながら
http://dev.mysql.com/downloads/connector/net/
例えばdatareader.csに
public override String GetString(int i){
IMySqlValue val = GetFieldValue(i, true);
if (val is MySqlBinary){
byte[] v = ((MySqlBinary)val).Value;
//ここ追加
System.Console.WriteLine("routeA");
System.Console.WriteLine(resultSet.Fields[i].Encoding.ToString());
for(int j = 0 ;j < v.Length; j++){
System.Console.WriteLine(v[j].ToString());
}
return resultSet.Fields[i].Encoding.GetString(v, 0, v.Length);
}
//ここ追加
System.Console.WriteLine("routeB");
System.Console.WriteLine(val.Value.ToString());
return val.Value.ToString();
}
みたいに書き換えてビルドし直して原因を探るかな(当然これだけでは治らない。)
#実際にビルドできるか試してすらいない。MySQLのセットアップ方法とか学ばないといけないの面倒だし。
No.1
- 回答日時:
MySQLがUTF-8を基準にしているのなら、2バイトコード(あいうえおかきくけこ)もUTF-8にエンコードしてからINSERTし
てやればよろしいのではないでしょか?お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Perl perlについての質問 2 2022/10/17 15:25
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで=より左の文字を一括で...
-
エクセルでアルファベットか数...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
■文字コード判定■
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
同一セル内に関数と文字列を同...
-
アクセスで特定の数字以外(複...
-
エクセル 数値データを桁をそ...
-
ダブルコーテーションでアンド...
-
Msgboxの×が押されたとき
-
【Excel VBA】複数ある特定の文...
-
VBの「As String * 128」とは?
-
エクセルでセル内の文字列の最...
-
MS SQLServer のSQLで文字列の...
-
16進数を10進数に簡単に変換す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
VBA2005 16進を2桁で表示したい。
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
VBの「As String * 128」とは?
-
Msgboxの×が押されたとき
-
【Excel VBA】複数ある特定の文...
-
MS SQLServer のSQLで文字列の...
-
アクセスで特定の数字以外(複...
-
エクセルでセル内の文字列の最...
-
ORCLEでの小数の表示方法の変更...
-
変数内に入った文字列の結合 UWSC
-
ACCESSのSQLでのカンマ’認識に...
おすすめ情報