webForumDet fria alternativet

Fel vid HTMLEncode på TEXT-fält men inte VARCHAR

ASP

2 svar · 419 visningar · startad av Grillcliff

Medlem sedan sep. 200032 inlägg
Frågan#1

Tjena,

<% If RS("strComment") = "" OR RS("strComment") = Null Then
	Response.Write "<i>Ingen kommentar har lämnats</i>"
Else
	If Len(RS("strComment")) > 150 Then
		Response.Write Left(RS("strComment"),150) & "..."
	Else
		Response.Write Server.HTMLEncode(RS("strComment"))
	End if
End if %>

Får felmeddelande på Server.HTMLEncode-raden:

Microsoft VBScript runtime  error '800a000d'
Type mismatch: 'Server.HTMLEncode'

strComment är av fälttypen TEXT och ändrar jag till VARCHAR(255) så uppstår inte problemet. Vad kan vara problemet? Problemet har gäckat mig en längre tid och jag har mina aningar om att det kan vara teckenuppsättningsfel?

  • default.asp är sparad om UTF-8
  • Fältet strComment är utf8_unicode_ci (iofs ändrad i efterhand från latin1_swedish_ci)
  • Sidan har <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • Har lagt till Response.Charset = "utf-8" innan databaskopplingen
Medlem sedan juni 20019 519 inlägg
#2
<%
Dim strComment
strComment = RS("strComment") & ""
If Len(strComment) = 0 Then
	Response.Write "<i>Ingen kommentar har lämnats</i>"
Else
	If Len(strComment) > 150 Then
		Response.Write Left(strComment,150) & "..."
	Else
		Response.Write Server.HTMLEncode(strComment)
	End if
End if
%>

Problemet är att (i alla fall i Access, kan vara på fler Databaser) att PM/TEXT tappar sitt innehåll efter man har kört den en gång, så lägg den i en variabel så är du säker.

Medlem sedan sep. 200032 inlägg
#3

Grymt skönt att bli kvitt det problemet. Tack!

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)