2009-11-11 4 views
2

PowerShell $ OutputEncoding est défini par défaut sur ASCII. PowerShell par défaut représente les chaînes en Unicode. Lorsque je crée des scripts à l'aide de l'ISE, ils sont créés en Unicode.Scripts PowerShell sur GitHub

La commande suivante envoie le texte dans un fichier Unicode: écho Test> test.txt

Quand je pousse ces fichiers à GitHub, le point de vue du code selfs sur eux parce qu'ils ne sont pas UTF-8.

Je suis confus au sujet de la meilleure solution, avec le moins de travail pendant la validation. Je sais que je pourrais convertir chaque fichier, puis commettre, mais cela me semble cockeyed. Clairement, je ne peux pas changer comment PowerShell représente les chaînes en interne, et je ne voudrais pas.

Que font les autres?

Répondre

3

ISE préserve l'encodage d'un fichier existant, mais lorsque vous créez un nouveau fichier avec ISE il est crée toujours le fichier avec le codage Unicode. Cela n'a rien à voir avec le $ OutputEncoding. IIRC il a été jugé un bogue en retard dans le cycle de dev - trop tard pour réparer. Quoi qu'il en soit, vous pouvez travailler autour en allant à la fenêtre de commande la première fois que vous enregistrez un fichier et d'exécuter:

$psISE.CurrentFile.Save([Text.Encoding]::ASCII) 

Après cela, vous pouvez simplement appuyer sur le bouton Enregistrer.

+0

Cela a fait l'affaire. – rbellamy

Questions connexes