Estoy intentando capturar un registro SVN en una cadena dentro de un script de PowerShell.Codificación de salida SVN en PowerShell
En la línea de comandos, la codificación de la salida es correcta, pero tan pronto como capturo en una cadena que no es:
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
--------------------------------------------------------------
Si puede ayudar, aquí es el valor de $ OutputEncoding en mi 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
Gracias !!
EDIT:
También he probado la salida XML desde SVN como sigue, pero sin suerte!
$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;
}
editar # 2:
no sé si se puede ayudar, pero me he dado cuenta de que la misma cuestión es simplemente usando el formato de salida XML directamente en el indicador de la consola de 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>
¿El mismo comportamiento sin canalizar a la cadena? –
Sí, exactamente lo mismo :( –