Archiv pro měsíc: Srpen 2009

Odstranění diakritiky v PowerShellu

Pro odstranění diakritiky v řetězcích lze z použít normalizace řetězce na tvar

př: ‚ěščřžýáíéů -> eˇsˇcˇrˇzˇy´a´i´e´u°.

Pak se už jen profiltruje vstupní řetězec a vyhodí se znaky NonSpacingMark
function RemoveDiacritics {
param ($s)

$s = $s.Normalize([System.Text.NormalizationForm]::FormD);
$sb = “;

for ($i = 0; $i -lt $s.Length; $i++) {
if ([System.Globalization.CharUnicodeInfo]::GetUnicodeCategory($s[$i]) -ne    [System.Globalization.UnicodeCategory]::NonSpacingMark

) {
$sb += $s[$i] ;
}
}
return $sb;
}