- - PR -
PostgresのNpgsql接続で文字化け
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-04-07 12:03
VB.NET2003+Postgres(8.1.3)+Npgsqlを利用して接続をしているのですが
SELECTした結果の文字(日本語)が化けてしまいます。 PostgresのエンコーディングはEUC-JPです 以下にコードをつけて起きます、何かご存知の方ご教授願います。 Imports Npgsql Private cn As NpgsqlConnection Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cn = New NpgsqlConnection("Server=localhost;" _ & "Port=5432;" _ & "User Id=postgres;" _ & "Password=postgres;" _ & "Database=testtable;") cn.Open() If cn.State <> ConnectionState.Open Then MessageBox.Show("接続エラー") Else MessageBox.Show("接続OK") End If 'select Dim sql As String Dim da As NpgsqlDataAdapter Dim row As DataRow Dim dt As DataTable sql = "SELECT * FROM table1" da = New NpgsqlDataAdapter(sql, cn) dt = New DataTable da.Fill(dt) If (dt.Rows.Count > 0) Then For Each row In dt.Rows Debug.WriteLine(row(1).ToString()) <--ここで日本語の内容を出力すると文字化けになる Next End If End Sub | ||||||||
|
投稿日時: 2006-04-07 13:12
DB設定よりの発言しかできないのですが、
を実行して、クライアントがSJISであることを通知するか、 PostgreSQLで以下のALTER DATABASE文を実行して、 あらかじめクライアントはSJISだと設定しておくかで解消できることは確認しました。
| ||||||||
|
投稿日時: 2006-04-07 13:47
夏椰|。σ)o、さん、ありがとうございます。
Dim nsqlCmd As NpgsqlCommand = New NpgsqlCommand("set client_encoding = sjis ;", cn) nsqlCmd.ExecuteNonQuery() を実行して、クライアントがSJISであることを通知する この方法で、問題ないことを確認いたしました。 |
1