Avatar billede montago Praktikant
18. november 2004 - 12:24 Der er 10 kommentarer og
1 løsning

mærkelige tegn og scripts

Hejsa... jeg er igang med at extracte en masse data fra et xml/html document

problemet er at min server ikke har det godt med mærkelige tegn

fx bliver resultatet af en mid opperation helt fucked i følgende eksempel:

  string = "<td>éæøå</td>"
  start = instr(string,">") + 1
  stop = instr(start , string , "<") - 1
  strTing = mid(string , start , stop )

hvad kan jeg gøre ved specieal tegn ?... jeg vil jo gerne beholde dem i sidste ende dvs.. ingen htmlencode
Avatar billede ldanielsen Nybegynder
18. november 2004 - 13:35 #1
strString = "<td>éæøå</td>"
intStart = instr(1, strString, ">") + 1
intStop = instr(intStart, strString, "<")
strTing = Mid(strString, intStart, intStop - intStart)

Det virker.

1. du bruger reserverede ord som variabelnavne: string og stop
2. sidste argument i Mid er længden, ikke slutpositionen, derfor skal det være intStop - intStart
3. første argument i instr er godtnok valgfrit, men jeg foretrækker at bruge det
Avatar billede montago Praktikant
18. november 2004 - 14:03 #2
1. i eksempler bruger jeg alle slags ord... også reserverede !
2. underordnet
3. underordnet

mit problem var at éæøå mf. får mid / instr til at gå amok
Avatar billede ldanielsen Nybegynder
18. november 2004 - 14:28 #3
Det eks jeg sendt virker perfekt. Du kan ikke påstå at pkt 2. er underordnet, jeg gåru fra at du vil have teksten mellem første > og næstfølgende <, og det får du ikke på din måde.

Hvilken server taler vi om? Udenlandske tegn i tekststrenge giver ikke ovenstående funktioner problemer.

Tage lige mit eks. og kør det på din site, og se om det ikke virker korrekt
Avatar billede montago Praktikant
18. november 2004 - 16:49 #4
serveren er unoeuro...

det jeg ikke fatter det er at éæøåýóá osv... kan lave fejl ??
Avatar billede ldanielsen Nybegynder
18. november 2004 - 20:25 #5
UnoEuro er udbyderen, ikke? Men der det en Windows server, eller en alternativ ASP afvikler (Hvilket jeg intet ved om).
Avatar billede montago Praktikant
18. november 2004 - 20:27 #6
Det er Windows 2003 servere...
Avatar billede ldanielsen Nybegynder
18. november 2004 - 20:32 #7
Ok, hvis du nu tager min kode og kører den:

strString = "<td>éæøåýóá</td>"
intStart = instr(1, strString, ">") + 1
intStop = instr(intStart, strString, "<")
strTing = Mid(strString, intStart, intStop - intStart)

Response.Write(strTing)

- hvad bliver resultatet så (Tag lige en "Vis kilde" og check der, for hvis den skriver "éæøåýóá</" vil det sidste "</" jo ikke kunne ses i browservinduet)
Avatar billede montago Praktikant
18. november 2004 - 20:37 #8
éæøåýóá

det kan også skyldes at XMLDOM'en som jeg bruger til at hente data'ene er fejlbehæftet... tror jeg skifter til sockets i stedet :(

Unoeuro mente at min LCID var sat forkert...
Avatar billede ldanielsen Nybegynder
18. november 2004 - 20:47 #9
LCID har intet med instr og mid at gøre. Hvis tekststrengen er der, og tegnene som du forventer, så fungerer funktionerne.

Men XMLDOM'en kan godt give disse fejl, og der er jeg måske ikke til så meget hjælp.

Hvis du skriver
Session.LCID = 1030

Øverst i dokumentet vil det måske redde det

Bruger du XML-funktionerne i objektet? Hvis du alligevel parser XML'en som tekststrenge kan du hente dem med WinHttp i stedet, den fungerer rigtig godt
Avatar billede montago Praktikant
10. august 2007 - 11:48 #10
smid et svar ldanielsen...

kan ikke huske hvor jeg har brugt koden... men i dag har jeg på fornemmelsen at det skyldes et forkert Charset... har for nyligt haft et lign. problem...

jeg fik dog løst problemet til sidst... tror jeg nok :D
Avatar billede montago Praktikant
19. oktober 2007 - 13:06 #11
hmm når han ik vil... må jeg jo
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
Kategori
Kurser inden for grundlæggende programmering

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