/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
AJAX -> ASP - DB og/eller DB -> ASP -> AJA~
Fra : Stig Johansen


Dato : 30-01-08 13:13

Notice: X-post

Hej begge grupper

Jeg sidder og leger lidt med ASP og AJAX osv.

Jeg har bemærket, at ASP/Windows ikke umiddlebart understøtter UTF-8, som er
standard (XML).

Jeg synes jeg har ledt, men har ikke kunnet finde noget ude på nettet.
(Jeg bruger ikke ASP normalt).

Man kan tilsyneladende få ÆØÅ osv. til at se rigtigt ud, men på min Win
server lander dataene som utf-8 i databasen.
Det er jeg ikke så glad for, hvis man skal bruge data'ene i andre
sammenhænge.

Jeg har derfor forfattet 2 funktioner i ASP
1) Function UTF8toAnsi (UTF8String)
Beregnet til at _modtage_ UTF8 fra request.form og returnerer Ansi
(ISO-8859-1), om det er 100% kompatibelt med Win 1250 ved jeg ikke.

2) Function AnsitoUTF8 (AnsiString)
Beregnet til at sende data i utf-8.

For at teste, har jeg klasket denne her form(UTF8toAnsi.htm) sammen:

<html>
<head>
<title>UTFtoAnsi test form</title>
</head>
<body>
<form method="POST" action="UTF8toAnsi.asp">
<p> UTF 8
<input type="text" name="UTFString" ><br>
</p>
<p> Ansii
<input type="text" name="AnsiString" ><br>
</p>
<input type="submit" value="Submit">
</form>
</body>
</html>

Og lavet et lille ASP script(UTF8toAnsi.asp) til test:

<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<HEAD>
<TITLE>UTF8toAnsi</TITLE>
</HEAD>
<HTML>
<BODY>
<P>Utf = <%= Request.Form("UTFString") %><P>
<P>UtftoAnsi = <%= UTF8toAnsi (Request.Form("UTFString")) %><P>
<P>Ansi = <%= Request.Form("AnsiString") %><P>
<P>AnsitoUTF = <%= AnsitoUTF8 (Request.Form("AnsiString")) %><P>
</BODY>
</HTML>
<!--#include file="UTF8toAnsi.inc.asp"-->

Og endelig include filen (UTF8toAnsi.inc.asp) med de 2 funktioner:
<%
'--------------------------------------------------------------------------------------
Function UTF8toAnsi (UTF8String)
Dim P ' position
Dim S ' Start
P = InStr(UTF8String,chr(195))
if P = 0 then
UTF8toAnsi = UTF8String ' no non-ascii chars
else
UTF8toAnsi = ""
S = 1
Do While P > 0
if P-S > 0 then
UTF8toAnsi = UTF8toAnsi + Mid (UTF8String,S,P-S) ' non ascii
end if
UTF8toAnsi = UTF8toAnsi + Chr(192 + (Asc(Mid (UTF8String,P+1,1))
mod 64 ))' the offset in table
S = P + 2
P = InStr(S,UTF8String,chr(195))
loop
end if
end Function ' UTF8toAnsi
'--------------------------------------------------------------------------------------
Function AnsitoUTF8 (AnsiString)
Dim P ' position
Dim L ' len
Dim C ' char no
L = Len (AnsiString)
For P = 1 to L
C = Asc(Mid (AnsiString,P,1))
IF C < 128 then
AnsitoUTF8 = AnsitoUTF8 + chr(C)
else
AnsitoUTF8 = AnsitoUTF8 + chr(195) + chr(128 + C mod 64)
end if
Next
end Function ' AnsitoUTF8
'--------------------------------------------------------------------------------------
%>


Hvis man gemer de 3 filer, der er nævnt i parantes, skulle det være lige ud
ad landevejen.

Jeg har ikke X-futtet, da evt indlæg kan være relevant i begge grupper.

--
Med venlig hilsen
Stig Johansen

 
 
Stig Johansen (30-01-2008)
Kommentar
Fra : Stig Johansen


Dato : 30-01-08 13:37

Stig Johansen wrote:

> Notice: X-post
> Jeg har derfor forfattet 2 funktioner i ASP

Med en lille smutter i, her er en update:
<%
'--------------------------------------------------------------------------------------
Function UTF8toAnsi (UTF8String)
Dim P ' position
Dim S ' Start
Dim L ' len
P = InStr(UTF8String,chr(195))
if P = 0 then
UTF8toAnsi = UTF8String ' no non-ascii chars
else
L = Len (UTF8String)
UTF8toAnsi = ""
S = 1
Do While P > 0
if P-S > 0 then
UTF8toAnsi = UTF8toAnsi + Mid (UTF8String,S,P-S) ' non ascii
end if
UTF8toAnsi = UTF8toAnsi + Chr(192 + (Asc(Mid (UTF8String,P+1,1))
mod 64 ))' the offset in table
S = P + 2
P = InStr(S,UTF8String,chr(195))
loop
if S <= L then UTF8toAnsi = UTF8toAnsi + Mid (UTF8String,S,L-S+1)
end if
end Function ' UTF8toAnsi
'--------------------------------------------------------------------------------------
Function AnsitoUTF8 (AnsiString)
Dim P ' position
Dim L ' len
Dim C ' char no
L = Len (AnsiString)
For P = 1 to L
C = Asc(Mid (AnsiString,P,1))
IF C < 128 then
AnsitoUTF8 = AnsitoUTF8 + chr(C)
else
AnsitoUTF8 = AnsitoUTF8 + chr(195) + chr(128 + C mod 64)
end if
Next
end Function ' AnsitoUTF8
'--------------------------------------------------------------------------------------
%>


--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409076
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste