2016-09-20 4 views
2

Ich habe ein Skript, das eine gespeicherte Prozedur auf einem SQL Server ausführt, der XML zurückgibt. Ich habe dann eine Funktion, um das XML in Powershell so zu formatieren, dass es lesbar ist. Wenn ich die XML in Chrome öffnen bekomme ich diesen Fehler:PowerShell XML-Codierung

This page contains the following errors: 

error on line 149 at column 27: Encoding error 
Below is a rendering of the page up to the first error. 

Ich glaube, ich brauche kann es in UTF-8 zu kodieren, aber ich bin nicht sicher, wo es in meinem Code zu tun. Jede Hilfe zur Behebung des Fehlers oder zur Codierung wird empfohlen.

ist hier die Powershell, die ich ausführen, um die XML-Datei zu erhalten:

function Format-XML { 
    [CmdletBinding()] 
    Param ([Parameter(ValueFromPipeline=$true,Mandatory=$true)][string]$xmlcontent) 
    $xmldoc = New-Object -TypeName System.Xml.XmlDocument 
    $xmldoc.LoadXml($xmlcontent) 
    $sw = New-Object System.IO.StringWriter 
    $writer = New-Object System.Xml.XmlTextwriter($sw) 
    $writer.Formatting = [System.XML.Formatting]::Indented 
    $xmldoc.WriteContentTo($writer) 
    $sw.ToString() 
} 


$Date = Get-Date -format "yyyyMMdd_HHmm" 
$File = "C:\Temp\MyFile"+$Date+".xml" 

$Query = "EXEC dbo.usp_MyProc" 

$resultRow = Invoke-Sqlcmd -Query $Query -database MyDatabase -ServerInstance MyServer 


Format-xml $resultRow['results'] | Set-Content -Path $File -Force 
+5

Versuchen '-Encoding UTF8' Anhängen zu deiner letzten Zeile –

Antwort

0

Kommentar "Try -Encoding UTF8 zur letzten Zeile angehängt" von Martin Brandi arbeitete