/ 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 og UTF8 -> Ansi
Fra : Stig Johansen


Dato : 08-02-08 19:57

Hej alle.

I fortsættelse af min ASP funktion blev jeg interesseret i at lave en
clientside UTF(toAnsi funktion.

Den kan bruges som eksempelvis:
var x = document.getElementById('sentense').value ;
x = encodeURIComponent(x) ;
x = uriutf8toansi (x,0) ;

hvor 'sentense' er et textarea.
x er så den iso-8859-1 URI encodede variabel til body part i
XMLHTTPRequest.send.

Sourcen kommer her, den kan muligvis gøres 'kønnere', men det er kun lavet
'for sjov', så der kommer ikke vejledninger osv. det er mere 'postet til'
Google.

function uriutf8toansi (utf8string,table) {
var utf8table =
'80,81,82,83,84,85,86,87,88,89,8a,8b,8c,8d,8e,8f,90,91,92,93,94,95,96,97,98,99,9a,9b,9c,9d,9e,9f,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,aa,ab,ac,ad,ae,af,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,ba,bb,bc,bd,be,bf' ;
var ansistring ;
var p ;
var s;
var l;
var c;
var nc ='' ; // new char
var nv ; // new hex value

if ( table == 0 ) c = '%C2'; else c = '%C3' ;
p = utf8string.indexOf(c);

if ( p == -1 ) {
ansistring = utf8string ;
}
else {
l = utf8string.length ;
ansistring = '';
s = 0 ;
while ( p >= 0 )
{
if ( p-s > 0 ) {
ansistring = ansistring + utf8string.substring(s,p-s);
}
nv =
utf8table.indexOf(utf8string.substring(p+4,p+6).toLowerCase()) / 3 + 128 +
table * 64 ;
nc = '0' + nv.toString(16) ;
ansistring = ansistring + '%' + nc.substring(nc.length
-2,nc.length).toUpperCase();
s = p + 6 ;
p = utf8string.substring(s,l).indexOf(c) ;
if ( p>= 0 ) p += s ;
}
if ( s <= l ) ansistring = ansistring + utf8string.substring(s,l) ;
}
if ( table == 0 ) {
return uriutf8toansi (ansistring,1) ;
}
else {
return ansistring ;
}
}



--
Med venlig hilsen
Stig Johansen

 
 
Stig Johansen (10-02-2008)
Kommentar
Fra : Stig Johansen


Dato : 10-02-08 14:32

Stig Johansen wrote:
> ansistring = ansistring + utf8string.substring(s,p-s);

Siger man ikke, at dem der ikke laver fejl, laver ikke noget`
Skulle nok være:
ansistring = ansistring + utf8string.substring(s,p);

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