c+;中多字节字符串的URL编码+; 我试图通过C++实现我的一些字符串的URL编码。字符串可以包含多字节字符,如™, ®, ©, 等等

c+;中多字节字符串的URL编码+; 我试图通过C++实现我的一些字符串的URL编码。字符串可以包含多字节字符,如™, ®, ©, 等等,c++,C++,输入文本:什么™ 输出应该是:大约20%E2%84%A2 我可以用encodeURIComponent和decodeURIComponent在JS中实现URL编码或解码, 但是我有一些C++中的原生代码,因此需要通过C++来编码一些文本。 这里的任何帮助都会让我松一口气。如果找不到库,手动操作并不难。首先将字符串编码为UTF-8(如果字符串采用另一种编码方式,那么还有其他文章介绍如何使用标准库进行编码),然后用127以上的值替换每个字符,并用该字符的百分比编码替换URL中限制的每个字符(一个百

输入文本:什么™
输出应该是:大约20%E2%84%A2

我可以用encodeURIComponent和decodeURIComponent在JS中实现URL编码或解码, 但是我有一些C++中的原生代码,因此需要通过C++来编码一些文本。
这里的任何帮助都会让我松一口气。

如果找不到库,手动操作并不难。首先将字符串编码为UTF-8(如果字符串采用另一种编码方式,那么还有其他文章介绍如何使用标准库进行编码),然后用127以上的值替换每个字符,并用该字符的百分比编码替换URL中限制的每个字符(一个百分号,后跟表示字符值的两个十六进制数字)。

如果找不到库,手动执行并不困难。首先将字符串编码为UTF-8(如果字符串采用另一种编码方式,则还有其他文章介绍如何使用标准库执行此操作)然后用127以上的值替换每个字符,并用该字符的百分比编码替换URL中受限制的每个字符(百分比符号后跟表示字符值的两个十六进制数字)。

根据谷歌随机搜索,受限制的字符是“
:/?#[]@!$&'()*+,;=
”最简单的解决方案可能是创建一个
std::string replacement[256]
,只需设置
replacement['a']=“a”
@MooingDuck:ISTR
%20
下的不可打印字符也受到限制,特别是CR、LF和TAB。根据谷歌随机搜索,受限制的字符是“
:/?#[]@!$&'()*+,;=/code>”最简单的解决方案可能是创建一个
std::string replacement[256]
,只需设置
replacement['a']=“a”
@MooingDuck:ISTR
%20
下的不可打印字符也受到限制,特别是CR、LF和TAB。