Newsgroup: it.comp.lang.visual-basic
Titolo: [NET][Urgente] Conversioni e codifiche del testo

CIAO a tutti, e' un po che non ci si sente ^_^
Vengo per una info veloce :
con
Dim XslT As Xsl.XslTransform = New Xsl.XslTransform
XslT.Load(Application.StartupPath & "\" & "parser.XSL")
XslT.Transform(Application.StartupPath & "\" & myXmlOut, 
Application.StartupPath & "\raw_" & myTextStep1, Nothing)
creo un file di testo che purtroppo mi converte le lettere accentate di 1 
byte in un carattere strano di 2byte Sconvolgendomi tutto il programma... 
siccome in net non ho molta dimestichezza, nessuno sa' come possa 
riconvertire un file nella codifica corretta ?
Esempi di testo :
"Via S. Nicolò 11" dopo la trasformazione mi si sputtana in : "Via S. 
NicolÃ² 11" aumentando di 1byte...
ora come posso tornare da Ã² (hex : C3 B2 ) a ò (hex: F2) ?
Ovviamente la situazione e' allargata a tutte le lettere accentate ed ai 
"caratteri speciali" ...
Grazie a tutti, ho speso 2 ore per trovare la magnagna... Grrrrrr... che 
nervoso sto NET...
-- 
[Gigio2k]
http://www.g2kweb.it
[ it-alt.comp.hardware.modding ] - 
http://www.g2kweb.it/ichm
 

 XslT.Load(Application.StartupPath & "\" & "parser.XSL")
dimenticavo, l'xsl di conversione impostato su :
<xsl:output method="text" indent="yes"/>
non e' che si puo' impostare la codifica direttamente da qui ?
purtroppo son a casa col 56k a consumo, mi connetto a tratti per guglare ma 
nulla...
mi manca l'adsl :(
a proposito, quale codifica conviene adottare per tenere tutti i caratteri 
strani in 1 byte ?
Utf7 ?


 ai "caratteri speciali" ...
Prova questo codice:
Dim XmlOriginalDocument As XmlDocument = New XmlDocument
XmlOriginalDocument.Load("c:\test.xml")
Dim xslt As XslTransform = New XslTransform
xslt.Load("c:\test.xsl")
Dim writer As XmlTextWriter = New XmlTextWriter("c:\trans.xml", 
Nothing)xslt.Transform(XmlOriginalDocument, Nothing, writer, Nothing)
Ciao!
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca

 Nothing)xslt.Transform(XmlOriginalDocument, Nothing, writer, Nothing)
per funzionare funziona come il precedente... solo che i caratteri "strani" 
non cambiano, da 1 byte si trasformano a 2
ti allego 2 stralci :
[xml Iniziale]
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="XFATCOM.XSL"?>
<!DOCTYPE jobs SYSTEM "XFATCOM.DTD">
<jobs>
 <job>
  <year>2005</year>
  <progressive>445</progressive>
  <name>XXXXXXXXX</name>
  <description>XXXXXXXXX
   Via S. Nicolò 11
  XXXXXXXXXXX (BO)</description>
  <order_reference>PIPPO</order_reference>
....
[Testata XSL]
<xsl:stylesheet version="1.0" 
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform
">
<xsl:output method="text" indent="yes"/>
...
[TXT trasformato]
{{}}Anno{{}}
2005
{{}}Progressivo{{}}
445
{{}}Nome{{}}
XXXXXXXXXXX
{{}}Descrizione{{}}
XXXXXXXXXXX
   Via S. NicolÃ² 11
   XXXXXXXXXXX PIPPO
....
non e' che si puo' specificare la codifica nella testata dell'XLS ?
ARGH, sono fuso !


 ARGH, sono fuso!
Si risolve, tranquillo ;)


 Si risolve, tranquillo ;)
Infatti son partito con "Urgente" e l'ho risolto solo ora (ho fatto altro 
durante il giorno), ho risolto usando come encoding il 
"System.text.encoding.default" in quanto solo con questa riesco a far vedere 
le accentate correttamente in 1byte, ora non capisco come mai tra le poche 
disponibili sotto "System.text.encoding.*" non c'e' ne sia nessuna (tranne 
default) che le gestisca correttamente.
Utf8 usa 2byte,
ascii 1byte ma lo cambia in "?"
largeendian come Utf8
uff7 aggiunge delle sigle
unicode 2 byte
Ora ho letto su msdn che e' possibile forzare la lettura di un encoder, ma 
sinceramente non saprei che identificativo assegnarli!!!
Con la default non mi sento tanto tranquillo, l'unica tranquillita' e' che 
il Cli ha il mio stesso os... ma Murphy e' dietro l'angolo.
