Qual è il modo più semplice per convertire XML da UTF16 a un file con codifica UTF8?Conversione di xml da UTF-16 a UTF-8 usando PowerShell
risposta
Questo potrebbe non essere il più ottimale, ma funziona. Basta caricare l'xml e reinserirlo in un file. l'intestazione xml è persa, quindi questo deve essere aggiunto nuovamente.
$files = get-ChildItem "*.xml"
foreach ($file in $files)
{
[System.Xml.XmlDocument]$doc = new-object System.Xml.XmlDocument;
$doc.set_PreserveWhiteSpace($true);
$doc.Load($file);
$root = $doc.get_DocumentElement();
$xml = $root.get_outerXml();
$xml = '<?xml version="1.0" encoding="utf-8"?>' + $xml
$newFile = $file.Name + ".new"
Set-Content -Encoding UTF8 $newFile $xml;
}
Beh, credo che il modo più semplice è quello di non solo preoccuparsi se il file è XML o meno e semplicemente convertire:
Get-Content file.foo -Encoding Unicode | Set-Content -Encoding UTF8 newfile.foo
Questo funziona solo per XML quando non c'è
<?xml version="1.0" encoding="UTF-16"?>
linea.
Se si desidera eseguire l'operazione senza creare un nuovo file, è possibile racchiudere tra parentesi il contenuto get: (Get-Content File.foo) | Set-Content -Encoding UTF8 File.foo – Jaykul
Come si fa per i file in una directory e sottodirectory? – stormwild
'gci -rec -fi * | % {(gc $ _ -enc unicode) | set-content -enc utf8 $ _. fullname} '. Abbastanza semplice, in realtà. – Joey
Prova questa soluzione che utilizza un XmlWriter
:
$encoding="UTF-8" # most encoding should work
$files = get-ChildItem "*.xml"
foreach ($file in $files)
{
[xml] $xmlDoc = get-content $file
$xmlDoc.xml = $($xmlDoc.CreateXmlDeclaration("1.0",$encoding,"")).Value
$xmlDoc.save($file.FullName)
}
Si consiglia di guardare XMLDocument
maggiori spiegazioni su CreateXmlDeclaration
.
Grazie mille per la cura di fornire una risposta così breve, tecnicamente migliore, a una domanda così vecchia! – gimpf
Ho dovuto farlo e ho trovato questa soluzione ancora prima di vedere questa domanda. Sentivo che era normale offrirlo. Con poco sforzo, qualcuno può persino usarlo per copiare durante la conversione della codifica dei file. Saluti. – LMA1980
- 1. Conversione da UTF8 a UTF16 tramite iconv
- 2. Conversione da HTML a XML
- 3. Conversione di tabelle mysql da latin1 a utf8
- 4. Conversione di XML illegittimi e char in utf8 - python
- 5. Conversione da String a DateTime in PowerShell
- 6. Conversione del problema da ANSI a UTF8 C#
- 7. conversione da xml a json android
- 8. Conversione da XML a CSV utilizzando XQuery
- 9. Conversione da JSON a XML in Java
- 10. Conversione da XML a CSV utilizzando Javascript
- 11. Come stampare un file con codifica UTF16 come ascii (o UTF8) dal prompt di comando di PowerShell?
- 12. byte UTF8 [] per conversione stringhe
- 13. Conversione da PHP a booleano usando '!!'
- 14. Conversione da HTML a PDF usando PHP?
- 15. Come ottenere valore da xml di PowerShell?
- 16. PowerShell ImportNode XML da diverse file di
- 17. conversione XML automatico a Scala
- 18. Come convertire un array ushort utf16 in un utf8 std :: string?
- 19. Copia da un file xml a un altro - powershell
- 20. perché Xdocument mi fornisce una dichiarazione utf16?
- 21. Quando si salva un XmlDocument, ignora la codifica nel XmlDeclaration (UTF8) e utilizza UTF16
- 22. uscita Conversione di query MySQL per utf8
- 23. Conversione personalizzata da JSON a XML utilizzando JSON.Net
- 24. Come creare XML da XML usando XSL?
- 25. grepping file binari e UTF16
- 26. Conversione da NSString a Base64 Data per serializzazione XML
- 27. Problemi nella conversione da XML a JSON utilizzando XSLT
- 28. Aggiornamento di file XML tramite PowerShell
- 29. Qual è la differenza tra UTF8/UTF16 e Base64 in termini di codifica
- 30. StreamReader da MemoryStream UTF8 Encoding
Non dovresti impostare esplicitamente la codifica per salvare da qualche parte? – Joey
Se sapessi come, lo farei. Tuttavia, sembra essere l'impostazione predefinita. –
-Parametro di codifica. – JasonMArcher