Vet inte helt hundra om det beror på min aspkod men i vilket fall som helst så vill jag skriva ut €-tecknet men får ett felaktigt tecken (i Firefox står det en FF FD i en liten ruta). Kan jag omvandla det till ANSI eller på något annat sätt lösa problemet? Det fungerar med tecknet så länge jag skriver ut det vanligt men med ASP (och AJAX) blir det problem. Texten ligger i ett varchar-fält i en MySQL-databas.
Koden:
<table border="0" cellspacing="6" align="left">
<tbody>
<tr>
<td align="left" valign="top"> </td>
<td align="left" valign="top"><p><strong>Lågsäsong</strong><br />1.1. - 20.6.<br />11.8. - 31.12.</p></td>
<td align="left" valign="top">
<p><strong>Högsäsong</strong><br />21.06 - 10.08</p>
</td>
</tr>
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
'SQL = "SELECT f_pcid,f_name_" & Session("lang") & " FROM tblPriceCats ORDER BY f_pcid"
SQL = "SELECT * FROM tblpricecats"
'Response.Write(SQL)
rs.Open SQL, Connection
If NOT rs.EOF Then
Do Until rs.EOF
Response.Write("<tr><td align=""left"" valign=""top""><strong>" & rs("f_name_sv") & "</strong></td>")
Response.Write("<td align=""left"" valign=""top""> </td><td align=""left"" valign=""top""> </td></tr>")
Set rs2 = Server.CreateObject("ADODB.Recordset")
SQL2 = "SELECT f_sv,f_sek_l,f_sek_h,f_euro_l,f_euro_h FROM tblPrices ORDER BY f_pid"
rs2.Open SQL2, Connection
If NOT rs2.EOF Then
Do Until rs2.EOF
Response.Write("<tr><td align=""left"" valign=""top"">" & rs2("f_sv") & "</td>")
strCurr = Trim(LCase(Replace(Replace(Request.QueryString("currency"),"'",""),"%","")))
If strCurr = "" OR strCurr = "sek" Then
Response.Write("<td align=""left"" valign=""top"">" & rs2("f_sek_l") & "</td>")
Response.Write("<td align=""left"" valign=""top"">" & rs2("f_sek_h") & "</td>")
ElseIf strCurr = "euro" Then
Response.Write("<td align=""left"" valign=""top"">" & rs2("f_euro_l") & "</td>")
Response.Write("<td align=""left"" valign=""top"">" & rs2("f_euro_h") & "</td></tr>")
Else
Response.Redirect("?lang=" & lang & "¤cy=sek")
End If
rs2.MoveNext
Loop
End If
rs2.Close : Set rs2 = Nothing
rs.MoveNext
Loop
End If
rs.Close : Set rs = Nothing
%>
</tbody>
</table>
Var noga med att ange encoding/charset och spara alla filer med matchande charset så ska det gå vägen. Förutsatt att du kör med en som har stöd för eurotecknet. FYI, ISO-8859-1 har det inte däremot finns det en utökning, ISO-8859-15, som har det.
Finns ingen annan utväg kan man köra med replace() och ersätta tecknet med dess HTML-entitet, &euro eller & #8364 . Det bästa vore förstås att köra med unicode rakt igenom. :)