Invoke-WebRequest を使用して xml ドキュメントを取得しています。xml 宣言で encoding="UTF-8" が指定されています。ブラウザでドキュメントを表示すると、正しく表示されます。しかし、PowerShell で取得してコンテンツを DB に保存したり、コンソールに出力したりすると、エンコーディングが正しくなくなり、"Joe's" が "Joeâs" になります。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<element attribute="Joe's"></element>
</root>
スクリプト:
$response = Invoke-WebRequest -Uri "http://example.com/doc.xml"
$xml = [xml]$response.Content
$xml.root.element.attribute
出力:
Joeâs
これだけでうまくいくのではないですか?