Teradata.Net ODBC提供程序编码问题



我使用Teradata.Net ODBC提供程序加载数据,它运行得很好,但当我加载日语/中文或其他需要的语言的字符串时,它们不是ASCII编码的,我只得到替换字符(/u0001(。那么,是否有可能设置驱动程序以返回UTF8中的数据?我还检查了数据库本身,数据是否正确存储,所有字符都不是ASCII字符。

我使用的代码示例:

using var cn = new TdConnection(connectionString);
cn.Open();
TdCommand cmd = cn.CreateCommand();
cmd.CommandTimeout = 3600;
cmd.CommandText = query;
using var reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
var test = reader.GetString(reader.GetOrdinal("description"));
...other fields
}
}
cn.Close();

所以最后正确的工作代码是:

var builder = new TdConnectionStringBuilder(connectionString)
{
SessionCharacterSet = "UTF8"
};
using var cn = new TdConnection(builder.ConnectionString);
cn.Open();

TdConnection不接受字符串以外的任何其他内容,因此需要TdConnectionStringBuilder来获取其他属性。

最新更新