在.NET中使用多字节字符限制URL编码字符串的长度

时间:2011-02-03 17:17:02

标签: .net urlencode truncate multibyte

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

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

1 个答案:

答案 0 :(得分:1)

我的快速谷歌搜索没有为此提供任何信息,这有点令人惊讶,因为这似乎是一个相对常见的问题(至少对于那些不会避免使用庞大长URL的人来说)。

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