Petit memo et info puisque j'ai été confronté à la situation : J'avais besoin de créer une table contenant l'ensemble des caractères accentués avec leur équivalent ASCII pour pouvoir ré encoder des fichiers provenant d'un site ne gérant pas l'UTF8.
Et c'est là que les soucis ont commencé, puisque visiblement les hashtables sont insensibles à la casse et ne peuvent avoir que des clés uniques. Ainsi, ceci ne marche pas :
> $characterchange = @{
"â"='â'
"Â"='Ã'
}
ParserError:
Line |
3 | "Â"='Ã'
| ~~~
'\x0a} Duplicate keys 'Â' are not allowed in hash literals.
En effet, il ne prend pas le â et le  comme deux caractères différents !
Après quelques recherches, il s'avère qu'il faut utiliser l'objet Hashtable en lieu et place du @{} usuel.
>$characterchange = New-Object hashtable
>$characterchange.Add("â",'â')
>$characterchange.Add("Â",'Ã')
>$characterchange
Name Value
---- -----
â â
 Ã