2010-01-29 4 views

Répondre

5

Retirez le @ omble chevalier - il n'est pas ici-string.

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

Ajouté après la réponse de Saint Marc:

Je vais ajouter parce que déjà posté réponse Saint Marc, qui peut être accepté, que ici cordes commencent par @. Essayez de les google. Et - c'est un peu différent de C#. Vous n'échappez pas avec \, mais avec backtick. Donc probablement la chaîne doit être quelque chose comme « ` u00A0 », mais je ne suis pas sûr ...

Solution

Après quelques Traîner débordement de la pile, j'ai trouvé la réponse de Shay qui est probablement ce que vous vouliez .

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

ou peut-être

$arr -join [char]0x00A0 

Shay's answer how to escape unicode character.

+0

Oui, c'est exactement ce que je cherchais, mais je me suis retrouvé à jeter l'unicode à char. – Filburt

+3

Dans le cas où cela n'est pas évident par la poste (qui devine plus que toute autre chose): PowerShell n'a pas de méthode d'échappement Unicode à l'intérieur des chaînes, donc oui, le seul moyen de le faire est de lancer un entier . – Joey

+0

Johannes, merci pour les informations supplémentaires. – stej

2

Vous avez pas besoin @ avant "\ 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

Cela explique que l'erreur, mais ne m'a pas aidé à se joindre à un espace insécable, donc STEJ obtient marqueur. Merci pour votre soutien néanmoins. – Filburt