当前位置:网站首页>URL encoding in Delphi7
URL encoding in Delphi7
2022-06-29 14:26:00 【XinShun】
1、 Reference resources :https://stackoverflow.com/questions/776302/standard-url-encode-function?answertab=trending#tab-top
function UrlEncodeUTF8(stInput: widestring): string;
const
hex : array[0..255] of string = (
'%00', '%01', '%02', '%03', '%04', '%05', '%06', '%07',
'%08', '%09', '%0a', '%0b', '%0c', '%0d', '%0e', '%0f',
'%10', '%11', '%12', '%13', '%14', '%15', '%16', '%17',
'%18', '%19', '%1a', '%1b', '%1c', '%1d', '%1e', '%1f',
'%20', '%21', '%22', '%23', '%24', '%25', '%26', '%27',
'%28', '%29', '%2a', '%2b', '%2c', '%2d', '%2e', '%2f',
'%30', '%31', '%32', '%33', '%34', '%35', '%36', '%37',
'%38', '%39', '%3a', '%3b', '%3c', '%3d', '%3e', '%3f',
'%40', '%41', '%42', '%43', '%44', '%45', '%46', '%47',
'%48', '%49', '%4a', '%4b', '%4c', '%4d', '%4e', '%4f',
'%50', '%51', '%52', '%53', '%54', '%55', '%56', '%57',
'%58', '%59', '%5a', '%5b', '%5c', '%5d', '%5e', '%5f',
'%60', '%61', '%62', '%63', '%64', '%65', '%66', '%67',
'%68', '%69', '%6a', '%6b', '%6c', '%6d', '%6e', '%6f',
'%70', '%71', '%72', '%73', '%74', '%75', '%76', '%77',
'%78', '%79', '%7a', '%7b', '%7c', '%7d', '%7e', '%7f',
'%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',
'%c0', '%c1', '%c2', '%c3', '%c4', '%c5', '%c6', '%c7',
'%c8', '%c9', '%ca', '%cb', '%cc', '%cd', '%ce', '%cf',
'%d0', '%d1', '%d2', '%d3', '%d4', '%d5', '%d6', '%d7',
'%d8', '%d9', '%da', '%db', '%dc', '%dd', '%de', '%df',
'%e0', '%e1', '%e2', '%e3', '%e4', '%e5', '%e6', '%e7',
'%e8', '%e9', '%ea', '%eb', '%ec', '%ed', '%ee', '%ef',
'%f0', '%f1', '%f2', '%f3', '%f4', '%f5', '%f6', '%f7',
'%f8', '%f9', '%fa', '%fb', '%fc', '%fd', '%fe', '%ff');
var
iLen,iIndex : integer;
stEncoded : string;
ch : widechar;
begin
iLen := Length(stInput);
stEncoded := '';
for iIndex := 1 to iLen do
begin
ch := stInput[iIndex];
result := '';
if (ch >= 'A') and (ch <= 'Z') then
stEncoded := stEncoded + ch
else if (ch >= 'a') and (ch <= 'z') then
stEncoded := stEncoded + ch
else if (ch >= '0') and (ch <= '9') then
stEncoded := stEncoded + ch
else if (ch = '/') then
stEncoded := stEncoded + ch
else if ((ch = '*') or (ch = '.') or (ch = '/') or (ch = '\') or (ch = '|')
or (ch = ':') or (ch = '<') or (ch = '>') or (ch = '"') or (ch = '_')
or (ch = '-') or (ch = '~') ) then
stEncoded := stEncoded + ch
else if (Ord(ch) <= $07F) then
stEncoded := stEncoded + UpperCase(hex[Ord(ch)])
else if (Ord(ch) <= $7FF) then
begin
stEncoded := stEncoded + UpperCase(hex[$c0 or (Ord(ch) shr 6)]);
stEncoded := stEncoded + UpperCase(hex[$80 or (Ord(ch) and $3F)]);
end
else
begin
stEncoded := stEncoded + UpperCase(hex[$e0 or (Ord(ch) shr 12)]);
stEncoded := stEncoded + UpperCase(hex[$80 or ((Ord(ch) shr 6) and ($3F))]);
stEncoded := stEncoded + UpperCase(hex[$80 or ((Ord(ch)) and ($3F))]);
end
end;
result := (stEncoded);
end;边栏推荐
- 《canvas》之第12章 其他应用
- Installation and removal of cover for CPU protection on desktop motherboard
- Can Ruida futures open an account? Is it safe and reliable?
- Hardware development notes (VIII): basic process of hardware development, making a USB to RS232 module (VII): creating a basic dip component (crystal oscillator) package and associating the principle
- vmware虚拟机的作用
- 用手机在指南针上开户靠谱吗?这样炒股有没有什么安全隐患
- Introduction to bloom filter
- Redis哨兵机制原理详解
- 吐血整理:一份不可多得的架构师图谱!
- 类模板案例-【数组类封装】
猜你喜欢
随机推荐
28000 word summary of callable and future interview knowledge points. After reading it, I went directly to ByteDance. Forgive me for being a little floating (Part 2)
Introduction to bloom filter
[top] blog instructions, bulletin board, message board, about bloggers
Introduction to veeambackup & replication
Thanos store component
《canvas》之第8章 像素操作
“死掉”的诺基亚,一年躺赚1500亿
[high concurrency] 28000 words' summary of callable and future interview knowledge points. After reading it, I went directly to ByteDance. Forgive me for being a little drifting (middle)
微信小程序:大红喜庆版UI猜灯谜又叫猜字谜
灵感收集·创意写作软件评测:Flomo、Obsidian Memo、Napkin、FlowUs
systemd调试
Istio网格中访问外部服务方法
Transport layer user datagram protocol (UDP)
Can Ruida futures open an account? Is it safe and reliable?
Redis transaction mechanism
Detailed explanation of redis sentry mechanism
留给比亚迪的时间还有三年
《canvas》之第5章 文本操作
【 网络带宽 】MBps & Mbps
Wechat applet: Yunkai publishes white wall wechat applet source code download server free and domain name support traffic main revenue









