2013-10-09 5 views
1

Я пытаюсь форматировать строку в консоли PowerShell 3 так:Powershell Строка форматирования не работает в консоли

PS C:\> "price : {0:C}" -f 15,99 
price : ? 15,00 

Вместо отображения знак валюты, я получаю «?».

Если я ту же команду в ISE, то Windows PowerShell IDE, я получаю:

PS C:\> "price : {0:C}" -f 15,99 
price : € 15,00 

Почему это? Нужно ли включать настройки для сеанса консоли?

-Darrell

+0

Возможно, что-то в юникоде? idk, поэтому я не сказал, что это ответ, http://stackoverflow.com/questions/5796339/printing-unicode-characters-to-powershell-prompt – MDMoore313

+0

Вы проверили настройки шрифта на своей консоли, чтобы убедиться, что шрифт включает символ евро? Это может быть просто проблема рендеринга. – TRayburn

+0

Не уверен, что это актуально, но также обратите внимание, что '15,99' в Powershell-land представляет собой массив из двух ints, содержащих записи 15 и 99. Ваша строка формата содержит только один слот, поэтому используется только 15. Это не единственный номер «15 и 99/100», который я понимаю в евро-стиле, часто пишут «15,99». Если вам нужен этот номер, вам нужно использовать '15.99' – latkin

ответ

3

Я хотел бы проверить настройки шрифта, я был просто в состоянии воспроизвести описанное поведение, установив свою консоль PowerShell шрифта «Точечные шрифты ». Если вы установите либо Lucida, либо Consolas, это поведение не воспроизводится.

+0

Это решило его. так просто.. :-) – DeChinees

0

Это выглядит как ошибка для меня. Формат вытягивается из [System.Globalization.NumberFormatInfo] :: CurrentInfo.CurrencySymbol

[System.Globalization.NumberFormatInfo]::CurrentInfo.CurrencySymbol 
"price : {0:C}" -f 15,99 
[System.Globalization.NumberFormatInfo]::CurrentInfo.CurrencySymbol="€" 
"price : {0:C}" -f 15,99 
Смежные вопросы