delphi,url中文编码

1、参考https://www.cnblogs.com/lucken2000/p/17582930.html

2、引用 HttpApp或IdURI
3、

function UrlEncodeUTF8(stInput : widestring): string;
consthex : 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');
variLen,iIndex : integer;stEncoded : string;ch : widechar;
beginiLen := Length(stInput);stEncoded := '';for iIndex := 1 to iLen dobeginch := stInput[iIndex];result := '';if (ch >= 'A') and (ch <= 'Z') thenstEncoded := stEncoded + chelse if (ch >= 'a') and (ch <= 'z') thenstEncoded := stEncoded + chelse if (ch >= '0') and (ch <= '9') thenstEncoded := stEncoded + chelse if (ch = '/') thenstEncoded := stEncoded + chelse if ((ch = '*') or (ch = '.') or (ch = '/') or (ch = '\') or (ch = '|')or (ch = ':') or (ch = '<')  or (ch = '>') or (ch = '"') or (ch = '_')or (ch = '-') or (ch = '~') ) thenstEncoded := stEncoded + chelse if (Ord(ch) <= $07F) thenstEncoded := stEncoded + UpperCase(hex[Ord(ch)])else if (Ord(ch) <= $7FF) thenbeginstEncoded := stEncoded + UpperCase(hex[$c0 or (Ord(ch) shr 6)]);stEncoded := stEncoded + UpperCase(hex[$80 or (Ord(ch) and $3F)]);endelsebeginstEncoded := 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))]);endend;result := (stEncoded);
end;  msg := '中文路径测试';
// 方法1
url:=Aurl+'?cn_content='+MinioUrlEncodeUTF8(msg)+'&test=123';
// 方法2
url:=Aurl+'?cn_content='+HttpEncode(UTF8EnCode(msg))+'&test=123';
// 方法3
url:=Aurl+'?cn_content='+ TIdURI.ParamsEncode(UTF8EnCode(msg))+'&test=123';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「小明赠书活动」第四期《Java开发坑点解析:从根因分析到最佳实践》

目录 ⭐️ 赠书 - 《Java开发坑点解析&#xff1a;从根因分析到最佳实践》 参 加 活 动 方 式 见 文 末 ⭐️内容简介 -《Java开发坑点解析&#xff1a;从根因分析到最佳实践》 ⭐️阅读建议 -《Java开发坑点解析&#xff1a;从根因分析到最佳实践》 ⭐️《Java开发坑…

新人学习笔记之(JavaScript循环)

目录 一、循环 1.循环的目的 2.js中的循环 二、for循环 1.在程序中&#xff0c;一组被重复执行的语句被称之为循环体&#xff0c;能否继续重复执行&#xff0c;取决于循环的终止条件&#xff0c;由循环体及循环的终止条件组成的语句&#xff0c;被称之为循环语句 2.for循环重…

如果你有电脑,请狠下心来你死磕这6门技能

在这个日新月异、竞争激烈的时代&#xff0c;掌握一门技能已经远远不够。为了在职场中脱颖而出&#xff0c;我们需要不断地学习和提升自己的能力。你的电脑除了用来办公做文档外&#xff0c;还可以用它自学这些技能&#xff0c;让你轻松月入过万&#xff01; 1&#xff1a;编程…

JS基础知识 —— AOP面向切片开发

前言&#xff1a;学习笔记&#xff01; function test1() {console.log("-----------------");console.log(1);console.log("");}function test2() {console.log("-----------------");console.log(2);console.log("");}function test…

C++容器之向量(std::vector)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 assigns3.3 iterators3.4 capacity3.5 rezize3.6 reserve3.7 shrink_to_fit3.8 access3.9 assign3.10 push_back3.11 pop_back3.12 insert3.13 erase3.14 swap3.15 clear3.16 emplace3.17 emplace_back3.18 get_allocator1 概…

记录一次内存取证

1.情景复现 我姐姐的电脑坏了。我们非常幸运地恢复了这个内存转储。你的工作是从系统中获取她所有的重要文件。根据我们的记忆&#xff0c;我们突然看到一个黑色的窗口弹出&#xff0c;上面有一些正在执行的东西。崩溃发生时&#xff0c;她正试图画一些东西。这就是我们从崩溃…

get_mbutton

get_mbutton (3600, Row, Column, Button) while (Button 1) get_mposition (3600, Row, Column, Button) get_mbutton( : : WindowHandle : Row, Column, Button) 等到按下鼠标按钮并返回点击坐标。 get_mbutton_sub_pix( : : WindowHandle : Row, Column, Butt…

ArrayBuffer内存格式相互转换 ArrayBuffer转化16进制 16进制转字符串 pcm转wav音频

一&#xff1a; pcm转wav音频 针对于音频格式的转换 const encodeWAV (samples, numChannels, sampleRate) > {var buffer new ArrayBuffer(44 samples.byteLength)var view new DataView(buffer)/* RIFF identifier */writeString(view, 0, RIFF)/* RIFF chunk length …

探索数组的最大值与最小值:从基础到进阶

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;数组的奥秘 二、基础操作&#xff1a;查找数组的最大值和最小值 三、…

怎样消除工人们对六西格玛培训的抵触情绪?

近年来&#xff0c;企业为了提高产品质量、优化生产流程&#xff0c;纷纷引入了六西格玛管理方法。然而&#xff0c;在实施过程中&#xff0c;不少企业却遭遇了工人们对六西格玛培训的抵触情绪。这种情绪的存在不仅阻碍了六西格玛的推广和应用&#xff0c;也影响了企业的整体运…

邦芒职场:揭秘影响你职场收入的九大细节

在职场这个大舞台上&#xff0c;微小的细节往往能决定你收入的多少。以下九大细节&#xff0c;是你职场成功的关键&#xff0c;不容忽视。 1. 形象塑造 在这个注重第一印象的时代&#xff0c;良好的形象是你的第一张名片。精致的妆容、得体的着装&#xff0c;不仅能为你加分&a…

packstack一键部署OpenStack云平台

OpenStack一键部署 文章目录 OpenStack一键部署资源列表基础环境一、基础环境配置1.1、配置时间同步1.2、配置网络1.3、添加hosts绑定1.4、更新系统并安装常用软件 二、使用packstack一键部署OpenStack2.1、Train版YUM源安装2.2、Packstack软件包安装2.3、Packstack一键部署Ope…

electron-01 基础及NPM相关配置

electron基础 结构 ChromiumNode.jsNative apis 工作流程 启动APP主进程创建windowWin加载界面操作 主进程 package.json中main属性对应的文件一个应用对应一个主进程只有主进程可以进行GUI的API操作 渲染进程 windows中展示的界面通过渲染进程表现一个应用可以有多个渲…

Unity 生成模版代码

1、创建模版代码文本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ClassNameScritpItem : MonoBehaviour {public GameObject go;// Start is called before the first frame updatevoid Start(){go new GameObject();}// …

LeetCode115:不同的子序列

题目描述 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数&#xff0c;结果需要对 109 7 取模。 代码 /*dp[i][j]&#xff1a;以i为结尾的s中有以j为尾的t的个数递推公式&#xff1a;当s[i - 1] 与 t[j - 1]相等时&#xff0c;dp[i][j]可以有两…

工业LED显示屏汉字乱码方式的解决

目录 研究背景 解决方法 原因分析 尝试的解决方法 本质原因 写在最后 研究背景 想实现LED显示屏数字、字母、汉字均能正常显示的效果&#xff08;效果如下&#xff09;。在将UTF-8改为GB2312 编码之前&#xff0c;数字和字母不乱&#xff0c;但是汉字会乱码。 解决方法 1…

Rust的高效易用日志库—tklog

很多人习惯于python&#xff0c;go等语言基础工具库的简单易用&#xff1b;在使用rust时&#xff0c;可能感觉比较麻烦&#xff0c;类似日志库这样的基础性工具库。tklog提供用法上&#xff0c;非常类似python等Logger的日志库用法&#xff0c;用法简洁&#xff1b;基于rust的高…

多线程笔记

1. run() VS start() run()方法&#xff1a; run()方法是java.lang.Runnable接口中定义的一个方法。当一个类实现了Runnable接口&#xff0c;并创建了一个线程对象时&#xff0c;你需要覆盖run()方法来定义线程要执行的任务。run()方法定义了线程的主体逻辑&#xff0c;当线程…

【详细介绍下PostgreSQL】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

Java面试八股之Synchronized锁升级的原理

Synchronized锁升级的原理 Synchronized锁升级是Java为了提高并发性能而引入的一项优化措施&#xff0c;这一机制主要发生在JDK 1.6及之后的版本中。Synchronized锁升级旨在减少锁带来的性能开销&#xff0c;通过从低开销的锁逐步升级到高开销的锁&#xff0c;以适应不同的竞争…