Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,7 +0,0 @@
|
|||
with AWS.URL;
|
||||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
procedure Encode is
|
||||
Normal : constant String := "http://foo bar/";
|
||||
begin
|
||||
Put_Line (AWS.URL.Encode (Normal));
|
||||
end Encode;
|
||||
|
|
@ -6,16 +6,44 @@ func$ tohex h .
|
|||
.
|
||||
return r$
|
||||
.
|
||||
func$ urlenc s$ .
|
||||
func[] utf8enc s$ .
|
||||
for c$ in strchars s$
|
||||
c = strcode c$
|
||||
if c >= 48 and c <= 57 or c >= 65 and c <= 90 or c >= 97 and c <= 122
|
||||
#
|
||||
if c < 0x80
|
||||
cnt = 0
|
||||
pre = 0
|
||||
elif c < 0x800
|
||||
cnt = 1
|
||||
pre = 0xc0
|
||||
elif c < 0x10000
|
||||
cnt = 2
|
||||
pre = 0xe0
|
||||
elif c < 0x200000
|
||||
cnt = 3
|
||||
pre = 0xf0
|
||||
else
|
||||
c$ = "%" & tohex c
|
||||
return [ ]
|
||||
.
|
||||
for i to cnt + 1 : r[] &= 0
|
||||
for i = 0 to cnt - 1
|
||||
l = c mod 0x40 + 0x80
|
||||
c = c div 0x40
|
||||
r[$ - i] = l
|
||||
.
|
||||
r[$ - i] = c + pre
|
||||
.
|
||||
return r[]
|
||||
.
|
||||
func$ urlenc s$ .
|
||||
b[] = utf8enc s$
|
||||
if b[] = [ ] : return ""
|
||||
for b in b[]
|
||||
if b >= 48 and b <= 57 or b >= 65 and b <= 90 or b >= 97 and b <= 122
|
||||
r$ &= strchar b
|
||||
else
|
||||
r$ &= "%" & tohex b
|
||||
.
|
||||
r$ &= c$
|
||||
.
|
||||
return r$
|
||||
.
|
||||
print urlenc "http://foo bar/"
|
||||
print urlenc "https://bn.wikipedia.org/wiki/রোসেটা_কোড"
|
||||
|
|
|
|||
|
|
@ -1,33 +1,27 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #000080;font-style:italic;">--
|
||||
-- demo\rosetta\encode_url.exw
|
||||
-- ===========================
|
||||
--</span>
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">nib</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">b</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">b</span><span style="color: #0000FF;">+</span><span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #000000;">b</span><span style="color: #0000FF;"><=</span><span style="color: #000000;">9</span><span style="color: #0000FF;">?</span><span style="color: #008000;">'0'</span><span style="color: #0000FF;">:</span><span style="color: #008000;">'A'</span><span style="color: #0000FF;">-</span><span style="color: #000000;">10</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
-- demo\rosetta\encode_url.exw
|
||||
with javascript_semantics
|
||||
function nib(integer b)
|
||||
return b+iff(b<=9?'0':'A'-10)
|
||||
end function
|
||||
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">encode_url</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">string</span> <span style="color: #000000;">exclusions</span><span style="color: #0000FF;">=</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">spaceplus</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">string</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">ch</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;">=</span><span style="color: #008000;">' '</span> <span style="color: #008080;">and</span> <span style="color: #000000;">spaceplus</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">ch</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">'+'</span>
|
||||
<span style="color: #008080;">elsif</span> <span style="color: #008080;">not</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;">,</span><span style="color: #000000;">exclusions</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">and</span> <span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;"><</span><span style="color: #008000;">'0'</span>
|
||||
<span style="color: #008080;">or</span> <span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;">></span><span style="color: #008000;">'9'</span> <span style="color: #008080;">and</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;"><</span><span style="color: #008000;">'A'</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">or</span> <span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;">></span><span style="color: #008000;">'Z'</span> <span style="color: #008080;">and</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;"><</span><span style="color: #008000;">'a'</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">or</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;">></span><span style="color: #008000;">'z'</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">&=</span> <span style="color: #008000;">'%'</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">nib</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;">/</span><span style="color: #000000;">#10</span><span style="color: #0000FF;">))</span>
|
||||
<span style="color: #000000;">ch</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">nib</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">and_bits</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;">,</span><span style="color: #000000;">#0F</span><span style="color: #0000FF;">))</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">ch</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">res</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
function encode_url(string s, string exclusions="", bool spaceplus=false)
|
||||
string res = ""
|
||||
for i=1 to length(s) do
|
||||
integer ch = s[i]
|
||||
if ch=' ' and spaceplus then
|
||||
ch = '+'
|
||||
elsif not find(ch,exclusions)
|
||||
and (ch<'0'
|
||||
or (ch>'9' and ch<'A')
|
||||
or (ch>'Z' and ch<'a')
|
||||
or ch>'z') then
|
||||
res &= '%'
|
||||
res &= nib(floor(ch/#10))
|
||||
ch = nib(and_bits(ch,#0F))
|
||||
end if
|
||||
res &= ch
|
||||
end for
|
||||
return res
|
||||
end function
|
||||
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">encode_url</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"http://foo bar/"</span><span style="color: #0000FF;">)})</span>
|
||||
<span style="color: #0000FF;">{}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">wait_key</span><span style="color: #0000FF;">()</span>
|
||||
<!--
|
||||
printf(1,"%s\n",{encode_url("http://foo bar/")})
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
[uri]::EscapeDataString('http://foo bar/')
|
||||
|
||||
http%3A%2F%2Ffoo%20bar%2F
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
Function UrlEncode(url)
|
||||
For i = 1 To Len(url)
|
||||
n = Asc(Mid(url,i,1))
|
||||
If (n >= 48 And n <= 57) Or (n >= 65 And n <= 90) _
|
||||
Or (n >= 97 And n <= 122) Then
|
||||
UrlEncode = UrlEncode & Mid(url,i,1)
|
||||
Else
|
||||
ChrHex = Hex(Asc(Mid(url,i,1)))
|
||||
For j = 0 to (Len(ChrHex) / 2) - 1
|
||||
UrlEncode = UrlEncode & "%" & Mid(ChrHex,(2*j) + 1,2)
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
End Function
|
||||
|
||||
WScript.Echo UrlEncode("http://foo baré/")
|
||||
Loading…
Add table
Add a link
Reference in a new issue