Avatar billede dotnewbi Juniormester
26. juli 2012 - 12:40 Der er 7 kommentarer og
1 løsning

Charset i winform

Hej Eksperten,

Jeg er støt ind i et underligt problem jeg har en funktion der henter ekstern data flere xml filer, og putter det ind i en lokal database. Nogle af disse filer indholder tekst på russisk, japansk og kinesisk. Når jeg køre funktionen via en aspx side er det det korrekte data der kommer ind i databasen. Men hvis jeg køre den præcis samme funktion inde i en winform så kommer alle specieltegene ind i databasen som ? tegn. Er den nogle der har nogen ide om hvorfor dette sker ?. Her er funktionen:
function DataImport(string ThePath){
  XDocument doc = XDocument.Load(ThePath);
            var DataElm= from DataPath in doc.Element("report").Elements("group").Elements("subgroup").Elements("item")
                            select KeywordRank;
            // Løbe gennem XML
            foreach (XElement KeywordRank in KeywordRankings)
            {
             
                string Product = KeywordRank.Element("product").Value;
                string Price = KeywordRank.Element("price").Value;
                string Status= KeywordRank.Element("stat").Value;
             

AddItemToDB(Product ,Price, Status);
              }
}
Avatar billede dotnewbi Juniormester
26. juli 2012 - 12:42 #1
function DataImport(string ThePath){ er selvfølgelig
public void DataImport(string ThePath){
Avatar billede Syska Mester
26. juli 2012 - 12:49 #2
Hvordan henter du det XML?

Har du tjekket at det er hvad Product, Price og Status indeholder er hvad du regner med, bare sådan at det ikke er din SQL som fejler?

mvh
Avatar billede dotnewbi Juniormester
26. juli 2012 - 13:12 #3
Ja for der er præcis de samme xml filer, storeprocedures og database tabeller jeg henter og bruge både i aspx udgaven og i winform udgaven.
Avatar billede Syska Mester
26. juli 2012 - 13:51 #4
Du burde også kunne lære det ud sådan her:
var streamReader = new StreamReader("path", Encoding.Unicode);
            var xDocument = XDocument.Parse(streamReader.ReadToEnd());

Så kan du i hvert fald angive hvad Encoding det er i. Det kan ske det hjælper.

Den prøver måske default og bruge ASCII ... måske UTF8 eller Unicode virker. Du kan også bruge Default ...

mvh
Avatar billede Syska Mester
26. juli 2012 - 13:55 #5
Lader til at UTF16 måske er default ...

Men hvorfor det kun går galt på Web og ikke desktop ved jeg ikke.

http://stackoverflow.com/questions/5248400/why-does-the-xdocument-give-me-a-utf16-declaration
Avatar billede dotnewbi Juniormester
14. august 2012 - 14:26 #6
ok smid et svar
Avatar billede dotnewbi Juniormester
29. marts 2013 - 23:02 #7
lukker!
Avatar billede Syska Mester
31. marts 2013 - 00:08 #8
Ups.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester