Как упомянуто @AdminOfThings в этом комментарии , кодировка, используемая powershell для декодирования вывода из exe, управляется [Console]::OutputEncoding
(тогда как $OutputEncoding
управляеткодировка, используемая для отправки данных в exe).
Значение этой переменной в моем случае было ibm850
:
> [Console]::OutputEncoding
IsSingleByte : True
BodyName : ibm850
EncodingName : Europe de l'Ouest (DOS)
HeaderName : ibm850
WebName : ibm850
WindowsCodePage : 1252
IsBrowserDisplay : False
IsBrowserSave : False
IsMailNewsDisplay : False
IsMailNewsSave : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : False
CodePage : 850
Переключение на iso-8859-1
решеномой выпуск:
> [Console]::OutputEncoding = [System.Text.Encoding]::Default
> [Console]::OutputEncoding
IsSingleByte : True
BodyName : iso-8859-1
EncodingName : Europe de l'Ouest (Windows)
HeaderName : Windows-1252
WebName : Windows-1252
WindowsCodePage : 1252
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : True
IsMailNewsSave : True
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 1252
Тогда:
> aws cognito-idp describe-user-pool --user-pool-id $MyPoolId | Out-Host
{
"UserPool": {
[...]
"EmailVerificationMessage": "Votre code de vérification est {####}."
[...]
}
}