在测试前,我提醒一句,把这些数据把保存到 BINARY 类型的字段中试试。

解决方案 »

  1.   

    用CONVERT。BASESTRING64试一下可以么??
      

  2.   

    str_name=odbc_reader["name"].ToString();//从数据库取得的数据
    str_name="Korea";
    str_country=odbc_reader["country"].ToString();//从数据库取得的数据
    //存入bytes数组
    byte[] bytesKorea=System.Text.Encoding.Default.GetBytes(str_name);
    Encoding eKorea=Encoding.GetEncoding(949);//949Korean代码页
    str_unicode_name=eKorea.GetString(bytesKorea);// 得到转换后的字符
    MessageBox.Show(str_unicode_name);//这时显示正常
    str_sql="insert into test_customer (name,country) values('" + str_unicode_name + "','" + str_country + "')";
    sql_cmd.CommandText =str_sql;
    MessageBox.Show(str_sql);
    //数据写入ql server数据库
    sql_cmd.ExecuteNonQuery();//写入数据库后,发现是又“?”组成的乱码
      

  3.   

    1. 我看不懂以下两句的真实意图是什么
    str_name=odbc_reader["name"].ToString();//从数据库取得的数据
    str_name="Korea";2.你清楚 System.Text.Encoding.Default 在你的机器上返回的是什么代码页吗?
      在我的机器上 GB2312。应该使用 Encoding.Unicode 替代之。3. 为什么 str_Country 不需要代码页转换?
      

  4.   

    是不是sql中的uvarchar类型有问题
      

  5.   

    1.str_name=odbc_reader["name"].ToString();//从数据库取得的韩文数据
    str_name="Korea";是测试英文字符转换后会不会边乱码,没用的
    2.这句话可能我理解错了,不过我通过MessageBox显示是正确的3.str_country是英文的,所有不要页码转换.
      

  6.   

    윈도우 모바일 발표