是什么导致塔奇';s URLEWRITEFILTER将urlencoded unicode字符(例如,ö;)格式化为错误的urlencoded unicode字符%C3%B6,如何避免?

是什么导致塔奇';s URLEWRITEFILTER将urlencoded unicode字符(例如,ö;)格式化为错误的urlencoded unicode字符%C3%B6,如何避免?,unicode,url-rewriting,special-characters,urlencode,tuckey-urlrewrite-filter,Unicode,Url Rewriting,Special Characters,Urlencode,Tuckey Urlrewrite Filter,我们使用一个简单的URLRewiteFilter规则来永久(301)重定向HTTP请求,而不使用尾随斜杠,将其重定向到具有尾随斜杠的相同URL 在某些情况下,我们的表示层需要包含编码特殊字符(例如,%C3%B6 forö)的URL,只要不涉及URLRewiteFilter,就可以正常工作。但当规则生效时,我可以看到编码字符在重定向时格式不正确,例如 www.mydomain.com/asdf%C3%B6asdf/-->301-->www.mydomain.com/asdf%F6asdf/ %F6

我们使用一个简单的URLRewiteFilter规则来永久(301)重定向HTTP请求,而不使用尾随斜杠,将其重定向到具有尾随斜杠的相同URL

在某些情况下,我们的表示层需要包含编码特殊字符(例如,%C3%B6 forö)的URL,只要不涉及URLRewiteFilter,就可以正常工作。但当规则生效时,我可以看到编码字符在重定向时格式不正确,例如

www.mydomain.com/asdf%C3%B6asdf/
-->301-->
www.mydomain.com/asdf%F6asdf/

%F6
不是有效的unicode序列(在URL解码时以黑色菱形的问号结尾)

我们在整个应用程序中使用UTF-8,它设置在响应标题以及HTML的
部分。在Windows和Linux计算机上出现格式错误的编码。重写规则如下所示

<rule enabled="true" match-type="regex" >
    <name>Force trailing slash</name>
    <note>...</note>
    <condition type="request-uri" operator="notequal">...>/condition> <!-- some URLs shall not be redirected -->
    <from>(^[^\?]*)(\?.*)?$</from>
    <to type="permanent-redirect" last="true" >$1/$2</to> <!-- adding trailing slash and query string, if present -->
</rule>

强制尾部斜杠
...
…>/条件>
(^[^\?]*)(\?.*)?$
$1/$2 

我很乐意知道如何解决这个问题。我使用和编码属性玩过
解码,但没有任何帮助。

我下面描述的问题似乎与此相关,该问题已于2010年提交,自那时以来一直未涉及。我可能必须通过使用Java“手动”处理请求来解决这个问题。尽管如此,其他想法仍然受到欢迎。

我在下面描述的问题似乎与此相关,该问题已于2010年提交,自那时以来未被涉及。我可能必须通过使用Java“手动”处理请求来解决这个问题。不过,其他想法仍然受欢迎。

我也有类似的问题。我所做的是将decode设置为null:

<urlrewrite decode-using="null">

我也有类似的问题。我所做的是将decode设置为null:

<urlrewrite decode-using="null">