如何使用PowerShell的SqlClient.SqlConnection以正确的编码从DB中提取数据?

时间:2017-11-08 16:45:53

标签: .net powershell sqlclient

我有以下工作代码:

Function DumpAssets {
    Param(
        [string]$DestinationPath = 'X:\path\to\dump_folder'
    )

    $SQLServer = "SQLSERVER123" 
    $SQLDBName = "SUPER_DB"
    $SqlQuery = "SELECT * FROM Lorem_Ipsum"

    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True"

    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
    $SqlCmd.CommandText = $SqlQuery
    $SqlCmd.Connection = $SqlConnection

    $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
    $SqlAdapter.SelectCommand = $SqlCmd

    $DataSet = New-Object System.Data.DataSet
    $SqlAdapter.Fill($DataSet) | Out-Null

    $SqlConnection.Close()

    $DataSet.Tables[0] | Export-Csv "$DestinationPath\dump.csv" -Force -NoTypeInformation
}

DumpAssets

该脚本按预期工作,我获得了包含Lorem_Ipsum表中所有行的CSV。问题是我的数据带有重音并且它们无法正确显示,而是我得到了一堆?,例如:SÃO PAULO变为S?O PAULO。如果我使用MS SQL Viewer,Power BI或任何其他可以访问数据库的工具打开表,它将正确显示。

如何修复我的代码以便输出格式正确?

1 个答案:

答案 0 :(得分:1)