5

私は .NET を使用していますが、マルチバイト文字を含む可能性のある文字列を切り捨てて、URL エンコード後に一定の長さを超えないようにする必要があります。これは組み込まれているようですが、見つかりません。

URL エンコードされたら部分文字列を作成するだけですが、エンコードされた文字の一部が取り除かれる可能性があります (スペースは %20 になり、末尾にある場合は %2 に切り捨てられる可能性があり、これは無効です)。マルチバイト文字の一部が切り捨てられます (π は %CF%80 としてエンコードされ、%、%CF、%CF%8 として切り捨てられる可能性がありますが、これらはすべて間違っています)。

4

1 に答える 1

1

これは比較的一般的な問題のように思われるため (少なくとも非常に長い URL を避けていない人にとっては)、これは少し驚くべきことです。

文字列をエンコードする場所でこれを繰り返し行うことができます。エンコードされた文字列が長すぎる場合は、元の文字を切り取って再エンコードし、エンコードされた文字列が十分に短くなるまでこれを続けます。これは明らかにあまりパフォーマンスが高くありません。

于 2011-02-03T17:36:23.163 に答える