PowerShellを使います(PowerShellの使い方はこの記事)。
スクリプト
# 変換したいUTF-8テキストファイルのパス(1行ずつ比較)
$path = "C:\your\path\input_utf8.txt"
# SJISエンコーディングオブジェクト
$sjis = [System.Text.Encoding]::GetEncoding("shift_jis")
# ファイルをUTF-8として読み込み
Get-Content -Encoding UTF8 -Path $path | ForEach-Object {
$line = $_
$bytes = $sjis.GetBytes($line)
$converted = $sjis.GetString($bytes)
if ($line -ne $converted) {
$diff = @()
for ($i = 0; $i -lt $line.Length; $i++) {
if ($i -lt $converted.Length -and $line[$i] -ne $converted[$i]) {
$diff += $line[$i]
}
}
Write-Host "変換できなかった行:" -ForegroundColor Yellow
Write-Host "元の行 : $line"
Write-Host "変換後 : $converted"
Write-Host "失われた文字: $($diff -join '')"
Write-Host "------------------------------"
}
}
こんな感じで出力されます。
変換できなかった行:元の行 : 𠮷野家で牛丼を食べた。
変換後 : ?野家で牛丼を食べた。
失われた文字: 𠮷
——————————
——————————
コメント