# encoding: ascii
# api: powershell
# title:
# description: Written to provide an easy method to perform easy batch
# version: 0.1
# type: function
# license: CC0
# function: Set-Encoding
# x-poshcode-id: 1821
# x-archived: 2015-12-16T23:37:38
#
# encoding, calls on the command Out-File with the -Encoding
# parameter and the -Force switch. Primarily to fix UnknownError
# status received when trying to sign non-ascii format files with
# digital signatures. Don’t use on your MP3’s or other non-text
# files :)
#
function Set-Encoding{
<#
.Synopsis
Takes a Script file or any other text file into memory
and Re-Encodes it in the format specified.
.Parameter FilePath
The path to the file to be re-encoded.
.Parameter Unicode
Outputs the file in Unicode format.
.Parameter UTF7
Outputs the file in UTF7 format.
.Parameter UTF8
Outputs the file in UTF8 format.
.Parameter UTF32
Outputs the file in UTF32 format.
.Parameter ASCII
Outputs the file in ASCII format.
.Parameter BigEndianUnicode
Outputs the file in BigEndianUnicode format.
.Parameter Default
Uses the encoding of the system's current ANSI code page.
.Parameter OEM
Uses the current original equipment manufacturer code page
identifier for the operating system.
.Example
ls *.ps1 | Set-Encoding -ASCII
.Description
Written to provide an easy method to perform easy batch
encoding, calls on the command Out-File with the -Encoding
parameter and the -Force switch. Primarily to fix UnknownError
status received when trying to sign non-ascii format files with
digital signatures. Don't use on your MP3's or other non-text
files :)
#>
[CmdletBinding()]
PARAM(
[Parameter(Position=0,Mandatory=$true,ValueFromPipeline=$true)]
[ValidateScript({
if((resolve-path $_).Provider.Name -ne "FileSystem") {
throw "Specified Path is not in the FileSystem: '$_'"
}
return $true
})]
[Alias("Fullname","Path")]
[string]$FilePath,
[switch]$Unicode,
[switch]$UTF7,
[switch]$UTF8,
[switch]$UTF32,
[switch]$ASCII,
[switch]$BigEndianUnicode,
[switch]$Default,
[switch]$OEM
)
BEGIN{
$Encoding = ""
switch(
$Unicode,
$UTF7,
$UTF8,
$UTF32,
$ASCII,
$BigEndianUnicode,
$Default,
$OEM
){
$Unicode{$Encoding = "Unicode"}
$UTF7{$Encoding = "UTF7"}
$UTF8{$Encoding = "UTF8"}
$UTF32{$Encoding = "UTF32"}
$ASCII{$Encoding = "ASCII"}
$BigEndianUnicode{$Encoding = "BigEndianUnicode"}
$Default{$Encoding = "Default"}
$OEM{$Encoding = "OEM"}
}
}
PROCESS{
(Get-Content $FilePath) | Out-File -FilePath $FilePath -Encoding $Encoding -Force
}
}