Files
Unimarc/unimarc/unimarc/recover_v2.ps1

24 lines
934 B
PowerShell

$path = "s:\Source\Gloria\Unimarc\unimarc\unimarc\Helper_LibraryDelaySettings.cs"
$utf8 = [System.Text.Encoding]::GetEncoding(65001)
$cp949 = [System.Text.Encoding]::GetEncoding(949)
# Read the CURRENT mangled file as UTF-8
$mangledString = [System.IO.File]::ReadAllText($path, $utf8)
# Convert each character to its CP949 bytes
# Note: This is tricky because some "characters" might be multiple bytes in CP949
# but here each character in the string represents what CP949 read from the original UTF-8 bytes.
$byteList = New-Object System.Collections.Generic.List[byte]
foreach ($char in $mangledString.ToCharArray()) {
$cBytes = $cp949.GetBytes($char)
foreach ($b in $cBytes) {
$byteList.Add($b)
}
}
# Now interpret these bytes as UTF-8 (the original encoding)
$restored = $utf8.GetString($byteList.ToArray())
Write-Host "--- Attempted Restoration ---"
Write-Host ($restored -split "`r`n" | select -First 10)