[PowerShell] - почему не распознает русский текст в XML?
От: Glestwid  
Дата: 02.07.23 09:49
Оценка:
Вот мой код:

Add-Type -AssemblyName System.Web


$fileIn1 = "Bridges.gpx" 

$XPath = "//gpx:wpt"

$ns = @{gpx="http://www.topografix.com/GPX/1/1"}

[hashtable]$wptsUnique = @{}




[xml]$xml = Get-Content $fileIn1 -Encoding UTF8 -Raw
$nsManager = New-Object System.Xml.XmlNamespaceManager($xml.NameTable)
$nsManager.AddNamespace("gpx", "http://www.topografix.com/GPX/1/1")
$wpts = $xml.selectNodes($XPath, $nsManager)


foreach($wpt in $wpts)
{
write-host $wpt.name
}


Вот XML, который я им читаю:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<gpx version="1.1" creator="OsmAnd+ 3.9.5"
xmlns="http://www.topografix.com/GPX/1/1"
xmlns:osmand="https://osmand.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"
xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1"
xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"
xmlns:trp="http://www.garmin.com/xmlschemas/TripExtensions/v1"
xmlns:adv="http://www.garmin.com/xmlschemas/AdventuresExtensions/v1"
xmlns:prs="http://www.garmin.com/xmlschemas/PressureExtension/v1"
xmlns:tmd="http://www.garmin.com/xmlschemas/TripMetaDataExtensions/v1"
xmlns:vptm="http://www.garmin.com/xmlschemas/ViaPointTransportationModeExtensions/v1"
xmlns:ctx="http://www.garmin.com/xmlschemas/CreationTimeExtension/v1"
xmlns:gpxacc="http://www.garmin.com/xmlschemas/AccelerationExtension/v1"
xmlns:gpxpx="http://www.garmin.com/xmlschemas/PowerExtension/v1"
xmlns:vidx1="http://www.garmin.com/xmlschemas/VideoExtension/v1">
<metadata>
<name>favourites</name>
</metadata>

<wpt lat="55.555555" lon="37.777777">
<name> Сарай на даче</name>
<desc>7</desc>
<type>Dacha</type>
<extensions>
<osmand:background>circle</osmand:background>
</extensions>
</wpt>



Почему при запуске скрипта я вместо "Сарай на даче" получаю "?????? ?? ???????" ? Кодировка XML файла точно UTF-8. И что мне сделать со скриптом, чтобы он начал правильно печатать текст ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.