Powershell - 将ASCII值数组转换为字符的简便方法

时间:2018-03-24 11:04:02

标签: powershell

我有一个限制,即无法以下列任何格式编码我的Powershell脚本文件 的Unicode
Unicode大端 UTF-8

我需要在名字中创建一些非英文字符的文件。 我找到了实现这一目标的方法。

$op = [char]24555,[char]36895,[char]30340,[char]26837,[char]33394,[char]29392,[char]29432,[char]36339,[char]36807,[char]20102,[char]25042,[char]29399    
"Write some necessary information to file" | Out-File "$op"

这里的输出是一个名为“快速的棕色狐狸跳过了懒狗”的文件,其中包含“将一些必要的信息写入文件”作为其内容 这种方法存在两个问题

  1. 我发现我的脚本看起来很尴尬,因为随着$ op的值变大,脚本看起来很笨拙。有没有更简单的方法来存储ASCII值,然后将它们动态转换为字符。我想避免必须在数组中单独将所有这些数字转换为[char]。

  2. 这个名字应该是快速的棕色狐狸跳过了懒狗而中间没有空格。

  3. 任何简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

对于第一个,您可以将整个列表转换为[char[]]

$op = [char[]]@(24555,36895,30340,26837,33394,29392,29432,36339,36807,20102,25042,29399)

要避免字符之间的空白,请在创建字符串之前更改输出字段分隔符:

$OFS = ''
"$op"

或使用-join运算符:

$op -join ''