Sto tentando di acquisire un registro SVN in una stringa all'interno di uno script PowerShell.Codifica dell'uscita SVN in PowerShell
Sulla riga di comando, la codifica dell'output è corretto, ma non appena lo catturo in una stringa non è così:
PS C:\sandbox> svn log -r1804 https://myserver.here/svn/myrepo
--------------------------------------------------------------
r1804 | myname | 2012-06-07 | 1 line
Here is my log message with a special caractère
--------------------------------------------------------------
PS C:\sandbox> $tempStr = svn log -r1804 https://myserver.here/svn/myrepo | Out-String
PS C:\sandbox> $tempStr
--------------------------------------------------------------
r1804 | myname | 2012-06-07 | 1 line
Here is my log message with a special caractére
--------------------------------------------------------------
Se può aiutare, ecco il valore di $ OutputEncoding sul mio sistema:
IsSingleByte : True
BodyName : us-ascii
EncodingName : US-ASCII
HeaderName : us-ascii
WebName : us-ascii
WindowsCodePage : 1252
IsBrowserDisplay : False
IsBrowserSave : False
IsMailNewsDisplay : True
IsMailNewsSave : True
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 20127
Grazie !!
EDIT:
Ho anche provato l'output XML da SVN come seguire, ma senza fortuna!
$CmdLine = "svn log -r40:HEAD https://myserver.here/svn/myrepo --xml";
$Logs = [xml](Invoke-Expression $CmdLine);
foreach ($Commit in $Logs.log.logentry)
{
Write-Host $Commit.msg;
}
EDIT # 2:
non so se può aiutare, ma ho notato che lo stesso problema è lì semplicemente utilizzando il formato di output XML direttamente sul prompt della console PowerShell :
PS C:\repo> svn log -r999:999
------------------------------------------------------------------------
r999 | myname | 2013-05-29 09:48:20 +0200 (mer., 29 mai 2013) | 2 lines
Log message line #1 with a special 'caractère'
Log message line #2
------------------------------------------------------------------------
PS C:\repo> svn log -r999:999 --xml
<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
revision="999">
<author>myname</author>
<date>2013-05-29T07:48:20.915930Z</date>
<msg>Log message line #1 with a special 'caractére'
Log message line #2</msg>
</logentry>
</log>
Stesso comportamento senza tubazioni per out-string? –
Sì, esattamente lo stesso :( –