C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: mysql接続文字コードの指定


(過去ログ 124 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■74028 / inTopicNo.1)  mysql接続文字コードの指定
  
□投稿者/ べっく (1回)-(2014/11/24(Mon) 11:09:58)

分類:[VB.NET/VB2005 以降] 

聞くところが間違っているかもしれませんが、お願いします。
mysqlに接続はできるのですが、全角文字が?とかに表示されます。
たぶん文字コードの指定が間違っているのではないかと思っているのですが、
以下のコードに文字コードの指定がありません。どのように指定すれば
よいでしょうか?utf8だとはわかっているのですが。
よろしくお願いします。

Imports MySql.Data.MySqlClient

Public Class DataBase

Private connectionString As String 'データベース接続文字列
Private connection As MySqlConnection 'データベースコネクション


'************************************************************
'メソッド :コンストラクタ
'概要 :MySQL接続の初期設定を行う
'************************************************************
Sub New(ByVal host As String, ByVal port As String, ByVal databaseName As String, ByVal userId As String, ByVal password As String)

connectionString = "server=" & host & ";"
connectionString &= "port=" & port & ";"
connectionString &= "database=" & databaseName & ";"
connectionString &= "user id=" & userId & ";"
connectionString &= "password=" & password

End Sub

'************************************************************
'メソッド :Open
'概要 :MySQLへ接続する
'************************************************************
Public Sub Open()

Try
'コネクション生成
connection = New MySqlConnection(Me.connectionString)

'MySQLへ接続
connection.Open()

Catch mysqle As MySqlException

'エラー。MySqlExceptionをスロー
Throw mysqle
End Try

End Sub
引用返信 編集キー/
■74030 / inTopicNo.2)  Re[1]: mysql接続文字コードの指定
□投稿者/ WebSurfer (398回)-(2014/11/24(Mon) 13:50:45)
No74028 (べっく さん) に返信

MySQL の質問をしているのですから MySQL Community Server と Connector/NET のバージョン
ぐらいは書きましょうよ。


自分がインストールしたのは MySQL Community Server 5.5.11 と Connector/Net 6.3.6 とち
ょっと古いので最新版では違うかもしれませんが・・・

MySQL でサポートされている日本語関係の文字コードの一つが UTF-8(他に cp932, eucjpms
というのもあるそうです)ですが、MySQL Community Server のインストールの際に Character
Set の設定を Best Support For Multilingualism にしていれば UTF-8 になります。

そうなっていれば、接続文字列で Character Set=utf8 に設定すれば OK なはずです。Visual
Studio からの設定方法は以下のページの画像を見てください。(VS2010 なので 2005 では違
うかも。また、Express 版ではこのようなことはできないかも)

MySQL をインストールしました
http://surferonwww.info/BlogEngine/post/2011/04/23/Installation-of-MySQL.aspx

文字コードは後で変更はできるそうです。「MySQL」「CHARSET」「日本語」でググってみてく
ださい。参考になる記事が多々見つかると思います。


後もう一つ、上記の設定がちゃんと UTF-8 を使用するようになっていても、テーブルを作る
スクリプトに以下のように別の文字コードが指定されているとダメです。

CREATE TABLE `be_DataStoreSettings` (
`ExtensionType` varchar(50) NOT NULL,
`ExtensionId` varchar(100) NOT NULL,
`Settings` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

自分の場合、米国のサイトから入手したスクリプトでテーブルを作ろうとして、そのスクリプト
が上記のようになっているのに気がつかずに作ってしまい、結果当然ダメで(Incorrect string
value というエラーが出る)、結局 latin1 で作ったデータベースは全部ドロップして、DEFAULT
CHARSET=latin1 を utf8 に書き換えてテーブルを作り直したということがありました。
引用返信 編集キー/
■74034 / inTopicNo.3)  Re[2]: mysql接続文字コードの指定
□投稿者/ べっく (2回)-(2014/11/25(Tue) 13:07:06)
No74030 (WebSurfer さん) に返信
済みません使用しているバージョンの事ですが、あまりに初心者なもので、ご迷惑を
おかけします。
xampp v3.2.1をインストールして
MySQL Community Server 5.6.21です。
と Connector/NET がわけわからなくなってます。

結局解決しました。テーブル作成するときに、phpadminから行ったのですが、
標準でCHARSETが、わけわからない物でした。
とりあえず、utf8 binを選択すると、全角文字が正しく表示されました。
大変有り難う御座いました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -