5

我正在使用 .NET,我需要截断一个可能包含多字节字符的字符串,以便它在经过 URL 编码后不会超过设定的长度。这似乎是内置的,但我找不到它。

一旦它被 URL 编码,我只会做一个子字符串,但这可能会占用编码字符的一部分(空格变成 %20,如果它在最后它可能会被截断为 %2,这是无效的),或者多字节字符的一部分将被截断(π 被编码为 %CF%80,它可能被截断为 %、%CF、%CF%8,所有这些都是错误的)。

4

1 回答 1

1

我的快速谷歌搜索没有找到任何结果,这有点令人惊讶,因为这似乎是一个相对常见的问题(至少对于那些不避免使用长得可怕的 URL 的人来说)。

您可以在对字符串进行编码的地方迭代地执行此操作,如果编码的字符串太长,您可以从原始字符串中删除一个字符并重新编码,并继续这样做,直到编码的字符串足够短。这显然不是很高效。

于 2011-02-03T17:36:23.163 回答