webForumDet fria alternativet

Finn ett fel i denna funktion (DecodeUTF8)

ASP

1 svar · 448 visningar · startad av l-boy

Medlem sedan juli 2003221 inlägg
Frågan#1

Hittade denna funktionen nånstans, och den fungerar - nästan.


function DecodeUTF8(s)
dim i
dim c
dim n

i = 1
do while i <= len(s)
c = asc(mid(s,i,1))
if c and &H80 then
 n = 1
 do while i + n < len(s)
   if (asc(mid(s,i+n,1)) and &HC0) <> &H80 then
     exit do
   end if
   n = n + 1
 loop
 if n = 2 and ((c and &HE0) = &HC0) then
   c = asc(mid(s,i+1,1)) + &H40 * (c and &H01)
 else
   c = 191 
 end if
 s = left(s,i-1) + chr(c) + mid(s,i+n)
end if
i = i + 1
loop
	  DecodeUTF8 = s 
end function

Matar jag den med (i UTF8) "åäöÅÄÖa" fungerar det. MEN om sista tecknet är t.ex å, ä, eller ö lyckas den ej konvertera sista tecknet rätt. Vad kan detta bero på?

Medlem sedan aug. 20039 340 inlägg
#2

Spontan gissning:

 do while i + n <= len(s)
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)