webForumDet fria alternativet

Bokstäver byts ut till konstiga tecken!

ASP

17 svar · 881 visningar · startad av Wiklund!!

Medlem sedan juli 2002549 inlägg
Frågan#1

Har ett problem på mitt community. I brevlådan så byts visa bokstäver ut till konstiga tecken på rubriken (#& mfl). Tror det är bokstäverna åäö som ersätts.
Kolumnen är i PM format.

Detta händer bara i brevlådan ingen annan stans. Kan jag ha skrivit ut kolumnen på något felaktigt sätt?

Så här har jag gjort iaf:

<%if len(RecSet("rubrik")) > 14 then
response.write "<p>" & left(RecSet("rubrik"), 14) & "...</p>"
else
response.write "<p>" & RecSet("rubrik") & "</p>"
end if%>

Någon som vet vad felet är?

Medlem sedan apr. 2001246 inlägg
#2

Varför använda PM till rubriken..? Jag skulle använt vanlig text och dragit ut antalet tecken till 255 vilket är max.

Medlem sedan juli 2002549 inlägg
#3

Det är runt 10 000 poster i databasen.. Och om jag ändrar till Text så ändras inte de redan inlagda rubrikerna!! Bara de nya posterna blir bra!

Medlem sedan mars 20015 287 inlägg
#4

Pröva lägg det hela i en variabel högre upp på sidan och skriv sen ut variabeln.

<%
rubrik = recset("rubrik")

'diverse kod eller annat kul ;)

%>

<%if len(rubrik) > 14 then 
response.write "<p>" & left(rubrik, 14) & "...</p>" 
else 
response.write "<p>" & rubrik & "</p>" 
end if%>
Medlem sedan juli 2002549 inlägg
#5

Okej ska testa sen! Tack!

Medlem sedan juli 2002549 inlägg
#6

Kommer bara massa siffror när jag testar!

Medlem sedan mars 20015 287 inlägg
#7

Samma fel med andra ord?

Medlem sedan juli 2002549 inlägg
#8

Det är len som strular till det!

Medlem sedan mars 20015 287 inlägg
#9

Asch, puckojag!

Jag har ändrat min kod, helt åt skogen var den, testa så då.

Medlem sedan juli 2002549 inlägg
#10

Hmm.. får fortfarande samma fel. Det värkar som om det är dom sista bokstäverna som byts till konstiga tecken. Har lagt upp en bild här så får du se hur det ser ut:

http://rubensoft.nu/wiklund/felbild.jpg

Det konstiga är att jag använder samma kod över allt på sidan där jag vill förkorta texter när de är för långa. Men det bara i brevlådan det struler till sig.

Medlem sedan mars 20015 287 inlägg
#11

Yes!

Felet beror på att eftersom åäö är inlagt med & # 1 9 6 ; osv i databasen och du klipper efter 14 bokstäver så om en "bokstav"/kod klipps i mitten blir det ett felaktigt tecken.

Lösning: Se till att inte klippa mitt i ett ord, klipp efter ordet. (=bokstaven i detta fall!)

RED. Ä i ascii alltså.

Medlem sedan juli 2002549 inlägg
#12

Kanske är lite jobbig nu.. Men hur gör jag för att klippa efter ordet/eller bokstaven?

Medlem sedan dec. 20003 563 inlägg
#13
strang = "Här här din rubrik" & " "
if len(strang) > 10
klipp = instr(10, strang, " ")
strang = left(strang, klipp)
end if

Här börjar vi på tecken 10 och söker där efter första mellanrummet i rubriken. Om rubriken är < 10 tecken behöver vi ju inte klippa.

/r Se till at du har ett mellanrum i slutet på strängen

Medlem sedan juni 20019 024 inlägg
#14

Felet är att du kör någon form av Server.HtmlEncode innan du slänger in det i databasen och sedan försöker visa det genom att korta av längden på strängen. Är det inte så?

Medlem sedan dec. 20003 563 inlägg
#15

yupp. det stämmer. :)
Och ÅÄÖ klipps av mitt i HTMLEncode-koden som finns i databasen.

Medlem sedan aug. 20003 575 inlägg
#16

Man skall aldrig använda HTMLEncode innan du lägger in i databasen bara när du skriver ut.

Så mitt tips är att Decoda allt du har i databasen och sedan när du skriver ut det använda HTMLEncode.

Medlem sedan juli 2002549 inlägg
#17

Jo det är sant att jag använder Server.HtmlEncode när jag lägger in det i databasen. Visste inte att det var felet, men nu vet jag =)

Men hur gör jag för att skriva ut med HTMLEncode?

Aja tack alla för hjälpen!

Medlem sedan mars 20015 287 inlägg
#18

response.write Server.HtmlEncode(RecSet("rubrik"))

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)