Ciao a tutti, premetto che di ASP non sò una cippa
Qualcuno è così gentile da dirmi come faccio a leggere una variabile in unicode?
Praticamente ho un campo di testo input in flash dove l'utente scrive tot info ... alla pressione di un bottone poi si richiama una pagina asp a cui viene passata la variabile associata alle informazioni scritte dall'utente. Il problema, penso, è che ASP non le legge bene (mi servono disponibili una marea di caratteri, dato che è un'applicazione multilingua: greco, tedesco, francese ecc con relativi accenti e lettere speciali) dato che ha problemi con Unicode mi pare di capire.
Esiste un modo per "convertire" il contenuto della variabile passata da flash in Unicode da dentro ASP?
Dico questo perchè la stessa pagina, una volta recuperata la variabile, ne scrive il contenuto in un DB (ma i caratteri non corrispondono).
Poi ovviamente c'è la procedura opposta: da flash richiamo un altra pagina ASP che fa una query al DB e ne restituisce il contenuto in un campo di testo dinamico in flash.
Dulcis in fundo c'è un altro tasto, sempre in flash, che richiama una terza pagina ASP che manda una email con il contenuto della variabile.
Funziona tutto ... l'unico problema sono sti maledetti caratteri speciali.
Il codice che uso per recuperare la variabile e scriverla nel DB è questo:
codice:
%>
Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
dbq = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "&Server.MapPath("db.mdb")&"; Persist Security Info = False"
Conn.Open dbq
stringa=request.form("stringa")
query="INSERT INTO TBL_Caratteri (contenuto) VALUES ('"&stringa&"')"
Conn.execute(query)
If Err.Number <> 0 Then
sError = "Descrizione: " & Err.Description & "
" & VbCrLf
sError = sError & "Errore numero: " & Err.Number & "
" & VbCrLf
sError = sError & "Source: " & Err.Source & "
" & VbCrLf
sError = sError & "SQLState: " & Err.SQLState & "
" & VbCrLf
sError = sError & "Native Error: " & Err.NativeError & "
" & VbCrLf
Response.Write("errore="&sError)
Response.End
End IF
response.write ("errore=0")
Conn.close
%>
Questo è invece il codice della seconda pagina ASP che fa la query
codice:
<%
'SCRIPT DI APERTURA DEL DATABASE
Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
dbq = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "&Server.MapPath("db.mdb")&"; Persist Security Info = False"
Conn.Open dbq
session.timeout=1200
i=1
query="select * FROM TBL_Caratteri"
set var=Conn.execute(query)
'a.Open query,Conn,3,3
response.write "stringa=1"
if not var.eof then
do while not var.eof
response.write "&dati"&i&"="&var("contenuto")
var.MoveNext
i=i+1
loop
end if
response.write "&num="&(i-1)
%>
Infine questo è il codice della terza pagina ASP che manda la mail.
codice:
<%
mittente=request.form("mittente")
destinatario=request.form("destinatario")
oggetto=request.form("oggetto")
stringa=request.form("stringa")
HTML = "<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML//IT"">" & NL
HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<meta http-equiv=""Content-Type"""
HTML = HTML & "content=""text/html; charset=iso-8859-1"">"
HTML = HTML & "<title>LTEST</title>"
HTML = HTML & "</head>"
HTML = HTML & "<body bgcolor=""#FFFFFF"">"
HTML = HTML & stringa
HTML = HTML & "</body>"
HTML = HTML & "</html>"
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.From = mittente
objMail.To = destinatario
objMail.Subject = oggetto
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.Body = HTML
objMail.Send
If Err <> 0 Then
sError = "Descrizione: " & Err.Description & "
" & VbCrLf
sError = sError & "Errore numero: " & Err.Number & "
" & VbCrLf
sError = sError & "Source: " & Err.Source & "
" & VbCrLf
sError = sError & "SQLState: " & Err.SQLState & "
" & VbCrLf
sError = sError & "Native Error: " & Err.NativeError & "
" & VbCrLf
Response.Write("errore="&sError)
Response.End
End IF
response.write ("errore=0")
Set objMail = nothing
%>
Se mi dite cose devo aggiungere per far leggere/scrivere giusto nel DB vene sarò grato in eterno