在Powershell中使用不间断空格加入字符串

Fil*_*urt 4 powershell

我试着

$arr = "one", "two"
$test = [String]::Join(@"\u00A0", $arr)
Run Code Online (Sandbox Code Playgroud)

它给了我

Unrecognized token in source text.
Run Code Online (Sandbox Code Playgroud)

难道是因为我在指定它UTF-8作为0xC2 0xA0

ste*_*tej 5

删除@char - 它不是here-string.

[String]::Join("\u00A0", $arr)
Run Code Online (Sandbox Code Playgroud)

在S.Mark的回答之后添加:

我会补充说因为S.Mark已经发布了答案,可以接受,这里的字符串开头@.试着谷歌吧.而且 - 它与C#有些不同.你不会逃避\,但有反击.所以字符串应该是"u00A0",但我不确定......

在堆栈溢出后,我发现Shay的回答可能是你想要的.

[String]::Join([char]0x00A0, $arr)
Run Code Online (Sandbox Code Playgroud)

或者可能

$arr -join [char]0x00A0
Run Code Online (Sandbox Code Playgroud)

Shay回答如何逃脱unicode角色.

  • 如果从帖子中看不出来的东西(猜测比其他任何东西都多):PowerShell在字符串中没有Unicode转义方法,所以是的,唯一有用的方法是将整数转换为`char`. (3认同)