5i365 (我心飞扬)当前离线
上尉
went 当前离线
少校
$cp = Get-FileCoder -file_path 't.txt' if($cp -eq 'utf-8'){ $s = Get-Content -Encoding UTF8 -Path 't.txt' } elseif( $cp -eq 'ansi'){ $s = Get-Content -Encoding Default -Path 't.txt' } [System.IO.File]::WriteAllLines('t2.txt',$s)复制代码
评分人数
TOP
#函数 获取文件编码 function Get-FileCoder($file_path){ $bytes = [System.IO.File]::ReadAllBytes($file_path) if($bytes[0] -eq 0xff -and $bytes[1] -eq 0xfe){ return 'utf-16_le' } if($bytes[0] -eq 0xfe -and $bytes[1] -eq 0xff){ return 'utf-16_be' } if($bytes[0] -eq 0xef -and $bytes[1] -eq 0xbb -and $bytes[2] -eq 0xbf){ return 'utf-8_bom' } $index = 0; $bu8 = $false while($index -lt $bytes.Count){ $one = 0 for($i = 0; $i -lt 8; $i++){ if(($bytes[$index] -band (0x80 -shr $i)) -eq 0){ break; } ++$one } if($one -eq 0){ ++$index } else { if($one -eq 1){ return 'ansi' } $bu8 = $true for($i = 0; $i -lt $one-1; $i++){ ++$index if(($bytes[$index] -band 0x80) -ne 0x80){ return 'ansi' } } ++$index } } if($bu8){return 'utf-8'} else { return 'ansi'} }复制代码
flashercs 当前离线