支持所有Powershell版本
在先前的技巧中我们阐述了怎么去替换文本中特殊的字符。今天这里有另一个方法它可能会稍稍慢一点,但是能更方便维护。其中哈希表的特性要区分大小写:
function ConvertTo-PrettyText($Text)
{
$hash = New-Object -TypeName HashTable
$hash.'ä' = 'ae'
$hash.'ö' = 'oe'
$hash.'ü' = 'ue'
$hash.'ß' = 'ss'
$hash.'Ä' = 'Ae'
$hash.'Ö' = 'Oe'
$Hash.'Ü' = 'Ue'
Foreach ($key in $hash.Keys)
{
$Text = $text.Replace($key, $hash.$key)
}
$Text
}
注意其中函数没有通过”@{}”来定义成一个哈希表,但是实例化了一个哈希表对象。现在这个哈希表在PS中调用是不用再区分大小写,而只要在函数中创建中注意大小写。 这个脚本必需注意函数中的大小写。
PS> ConvertTo-PrettyText -Text 'Mr. Össterßlim' Mr. Oesstersslim PS>
要追加替换对象, 只需非常简单添加相应前缀的字符串到哈希表和它的替换内容的值。
你还可以指定成ASCLL码,下面代码将不同,它将哈希表的键换成了ASCLL码。
function ConvertTo-PrettyText($Text)
{
$hash = @{
228 = 'ae'
246 = 'oe'
252 = 'ue'
223 = 'ss'
196 = 'Ae'
214 = 'Oe'
220 = 'Ue'
}
foreach($key in $hash.Keys)
{
$Text = $text.Replace([String][Char]$key, $hash.$key)
}
$Text
}
原文地址:Converting Special Characters, Part 2
本文链接: https://www.pstips.net/converting-special-characters-part-2.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
