将GB2312转换成ISO8859,或将ISO8859转化成GB2312格式。我是利用的SQL Server 在Oracle中也是可以的。
//在FORM中增加控件button 按钮控件,datagridview查询结果展示控件。button1_Click这个为按钮的单机事件。
利用2个for 循环遍历全部的数据,并进行转换,转换后再往回复制。最后再将赋值后的表呈现出来
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=服务器IP;Initial Catalog=数据库;User ID=用户名;Password=密码");
con.Open();
string sql = "select * from student";
SqlDataAdapter sa = new SqlDataAdapter(sql,con);
DataSet ds = new DataSet();
sa.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
string str = ds.Tables[0].Rows[i][j].ToString();
string strto = GB2312TOISO8859(str); /将GB2312转ISO8859
//string strto = ISO8859TOGB2312(str); //ISO8859转GB2312
ds.Tables[0].Rows[i][j] = strto;
}
}
this.dataGridView1.DataSource = ds.Tables[0];
con.Close();
}
//将GB2312转ISO8859
public string GB2312TOISO8859(string str)
{
System.Text.Encoding ISO8859 = System.Text.Encoding.GetEncoding("iso8859-1");
System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("gb2312");
byte[] gb = GB2312.GetBytes(str);
return ISO8859.GetString(gb);
}
//ISO8859转GB2312
public string ISO8859TOGB2312(string str)
{
System.Text.Encoding ISO8859 = System.Text.Encoding.GetEncoding("iso8859-1");
System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("gb2312");
byte[] iso = ISO8859.GetBytes(str);
return GB2312.GetString(iso);
}