<% 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
<%
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.