开发者

Join string with non-breaking space in Powershell

开发者 https://www.devze.com 2022-12-18 06:40 出处:网络
I try to $arr = \"one\", \"two\" $test = [String]::Join(@\"\\u00A0\", $arr) and it gives me Unrecognized token in source text.

I try to

$arr = "one", "two"
$test = [String]::Join(@"\u00A0", $arr)

and it gives me

Unrecognized token in source text.
开发者_运维技巧

Is it because i have to specify it in utf-8 as 0xC2 0xA0?


Remove the @ char - it is not here-string.

[String]::Join("\u00A0", $arr)

Added after S.Mark's answer:

I'll add because S.Mark already posted answer, that can be accepted, that here-strings begin with @. Try to google them. And - it's somewhat different to C#. You don't escape with \, but with backtick. So probably the string should be something like "`u00A0", but I'm not sure...

Solution

After some hanging around stack overflow, I found Shay's answer that probably is what you wanted.

[String]::Join([char]0x00A0, $arr)

or maybe

$arr -join [char]0x00A0

Shay's answer how to escape unicode character.


You would not need @ before "\u00A0"

PS > $arr = "one", "two"

PS > $test = [String]::Join(@"\u00A0", $arr)
Unrecognized token in source text.

PS > $test = [String]::Join("\u00A0", $arr)
PS >
PS > $test
one\u00A0two
0

精彩评论

暂无评论...
验证码 换一张
取 消