缺乏GET参数的自动编码是一个bug吗?(Chrome和Edge)

6xfqseft  于 2023-03-21  发布在  Go
关注(0)|答案(1)|浏览(129)

传统的Web应用程序仍然使用Shift_JIS作为页面字符代码。
在此应用程序中,如果使用JavaScript将特定的多字节字符设置为GET参数,则某些字符将不会转换。
[Page字符代码:轴_JIS]

<!doctype html>
<html>
<head>
    <title>Shift_JIS_AutoUrlEncode_Bug?</title>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
    <script type="text/javascript">
    <!--
    function exec() {
        var url = location.href.split('?')[0];
        
        location.href = url + '?value=フー'
    }
    -->
    </script>
</head>
<body>
    <input type="button" value="Go Get Paramater Auto Encode!" onclick="exec();">
</body>
</html>

这个字是“"。
浏览器的自动编码结果为“%81["。
我想应该是“%81%5B”才对。
以前的Web容器(tomcat)允许此请求,但最新版本的Web容器(tomcat)导致错误“RFC 7230和RFC 3986冲突”。
如果说有什么不同的话,那似乎是Chrome和Edge中的bug,但你怎么看呢?
谢谢。

vuktfyat

vuktfyat1#

我可以在Edge、Chrome和Firefox上重现这个错误转换的URL,这意味着它不是Edge或Chrome特有的问题。我认为你可以在Tomcat端解决它。你可以参考this thread

相关问题