Avatar billede plato Juniormester
19. november 2006 - 14:58 Der er 15 kommentarer og
1 løsning

Problem med danske bokstaver, ASP

Hejsa NG.

Jeg bruger følgende kode til at udtrække nyhedsoverskrifter på min forside:
<%
strNSQL = "SELECT TOP 48  * FROM forumindlaeg WHERE anmeldtype = 'nyhed' AND online = True  ORDER BY id DESC"
Set rs = objConn.Execute(strNSQL)

do while (not rs.EOF)

WriteNews = fncTextChangeNewsList(rs("emne"))

Response.Write ("<a class='boks' href='/news.asp?mode=news_show&amp;id=" & rs("id") & "' title='" & rs("emne") & "'><img src='grafik/gfx/arrowright.gif' border='0' alt='Arrow'> " & left(WriteNews,20) & "</a><br />")

rs.MoveNext
loop%>

Problemet er at nogle er nyhederne ser sådan ud:

- Madagascar 2&q
- "Borat" &#
- Stjerneskud - 100 &#

Jeg har prøvet med:
Function fncTextChangeNewsList(strTextNewsList)
strTekstNewsList = Trim(strTextNewsList)
fncTextChangeNewsList = Replace(strTekstNewsList,"'","'")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"""","""")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"  "," &nbsp;")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,vbCrLf,"<BR>")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"å","&aring;")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"æ","&aelig;")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"ø","&oslash;")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"Å","&Aring;")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"Æ","&AElig;")
fncTextChangeNewsList = Replace(fncTextChangeNewsList,"Ø","&Oslash;")
End Function

Også så skrive:
WriteNews = fncTextChangeNewsList(rs("emne"))

Men det virker ikke så længe jeg har denne:
left(WriteNews,20)
Avatar billede plato Juniormester
19. november 2006 - 14:59 #1
èn af overskriften er sådan:
Opfølger til &q

Der er 'ø' rigtig, men så snart den rammer det 20. tegn så går det galt.
Avatar billede keysersoze Ekspert
19. november 2006 - 15:06 #2
kan ikke lige umiddelbart forklare hvor det går galt - men i stedet for din alt for lange replace kan du gøre dette;

Server.HtmlEncode(rs("emne"))
Avatar billede morhan Novice
19. november 2006 - 15:07 #3
byt rundt på din funktionskald

WriteNews = left(rs("emne"))
WriteNews = fncTextChangeNewsList(WriteNews)
Avatar billede keysersoze Ekspert
19. november 2006 - 15:24 #4
... hvilket altså vil svare til;

Response.Write Replace(Server.HtmlEncode(left(rs("emne"),20)),VbCrLf,"<br>")

en smule kortere end det du forsøger :)
Avatar billede keysersoze Ekspert
10. december 2006 - 02:23 #5
lukketid?
Avatar billede plato Juniormester
10. december 2006 - 10:59 #6
Ja, problemet lå en helt andet sted.
Avatar billede keysersoze Ekspert
10. december 2006 - 11:28 #7
hvorhenne så?
Avatar billede plato Juniormester
10. december 2006 - 12:23 #8
Problemet lå i koden, der sætte tingene ind i databasen.
Avatar billede morhan Novice
10. december 2006 - 12:32 #9
Det kan godt være du også havde et problem ved indsættelse, men du har/havde også et problem i ovenstående, når du tæller tegn -efter- du har omsat danske tegn til html-koder (så fylder de jo ikke længere kun eet tegn)
Avatar billede keysersoze Ekspert
10. december 2006 - 12:41 #10
jeg vil bestemt også mene at der er lidt lusk i dette, for det problem du viser i dit spørgsmål kan du ikke undgå ved at ændre ved indsættelse af data.

Hvis ikke der kommer en lidt bedre forklaring eller lidt bedre fakta frem vil jeg benytte med af anmeld misbrug-funktionen...
Avatar billede plato Juniormester
10. december 2006 - 19:50 #11
"Det kan godt være du også havde et problem ved indsættelse, men du har/havde også et problem i ovenstående, når du tæller tegn -efter- du har omsat danske tegn til html-koder (så fylder de jo ikke længere kun eet tegn)"----
"jeg vil bestemt også mene at der er lidt lusk i dette, for det problem du viser i dit spørgsmål kan du ikke undgå ved at ændre ved indsættelse af data.---

Nej!/Jo! Bliver sgu lidt "sur" på jeres indlæg. Har brugt eks i lang tid til hjælp, og har egentlig aldrig misbrugt det.

Problemet ligger i når tingene bliver sat ind i databasen, og kun der! Som det nu engang ses på www.filmnet.dk, boksen i højre side med nyheder, er der ingen problemer efter jeg opdagede det egentlige problem.

Kan ikke se hvad jeg skulle få ud af, at lave en lusk spørgsmål, som det så fint kaldes, da det overhovedet ingen betydning har for mig.
Avatar billede keysersoze Ekspert
10. december 2006 - 20:16 #12
jamen - så fortæl hvad det egentlige problem var og ingen hard feelings eller noget herfra (det er der nu ikke i forvejen).

Jeg har utrolig svært ved at se hvordan du kan indsætte tingene i databasen anderledes så du både undgår at køre din replace (hvilket du vel stadig må gøre) samtidig med at du undgår det problem beskrevet i dit spørgsmål.

grunden er, at hvis du har stringen "dette er en ø med palmer" og du replacer ø med &oslash eller du indsætter &oslash i din database (hvilket umiddelbart vil være en forkert beslutning) og først derefter tager din left vil dette gøres på stringen "dette er en &oslash med palmer" - og skulle dit split ligge midten i det nu omformede ø vil problemet opstå da de resterende tegn så ikke kan genkendes.

Så hvad præcis har du gjort for at undgå alt dette (forhåbentlig har du ikke lavet et ekstra felt med de 20 tegn i)?
Avatar billede plato Juniormester
10. december 2006 - 20:39 #13
Blev også mere skuffet end sur.

Jeg laver ingen replace når jeg indsætter æ,ø,å eller tegn i databasen. Jeg kan ikke forklare hvordan koden virker da jeg er begyndt at bruge Table Editor 0.81 Beta fra TableEditor. Hvilket gør jeg ingen problemer har.
Avatar billede keysersoze Ekspert
10. december 2006 - 21:02 #14
jamen - det er da godt at man ikke ved hvordan noget virker ;)

Men vil det så sige at du ikke engang har forsøgt at bruge de løsningsforslag der kom her?
Avatar billede plato Juniormester
10. december 2006 - 23:20 #15
Jo har forsøgt at bruge dem, de virkede ikke.

"jamen - det er da godt at man ikke ved hvordan noget virker ;)"
Har bare været doven og har ikke kigget koden igennem endnu. ;)
Avatar billede keysersoze Ekspert
10. december 2006 - 23:48 #16
sjov - for det virker hos mig... men lad nu det ligge.
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