我正在编写的一个内部网站发生了一件奇怪的事情。我提交了一个表单,其中包含一些HTML“选择/选项”条目。提交表单时,这些条目会适当地出现在目标页面的查询字符串中……但是末尾添加了%0A%0D。
不幸的是,这使它们在目标页面中不可用(它们应该是图像(JPG)文件名。因此,“ mypicture.jpg”变为“ mypicture.jpg%OA%OD”,这是行不通的)。
我已经仔细检查过了;源中的任何地方都没有%A0%AD条目;它们似乎是在内部传输到提交页面时生成的?
恰恰相反,相同的代码可以在另一个网站上正常工作(两个网站都使用相同的源HTML文件,存储在同一台服务器上,但是数据库连接不同,因此它们都使用相同的代码)。
是否有关于这种异常和反社会行为的想法?
答案 0 :(得分:0)
'%A0'是在url中对空格进行编码的旧方法(如今,您倾向于看到'+'),因为不允许使用“”,因此对'%AD'同样适用。检查您的代码,看看它是否没有为URL字符串留下尾随空格。
答案 1 :(得分:0)
对它进行了排序..与HTML无关。
我的表单由来自MySQL数据库的条目填充。
事实证明,这些数据库条目中的许多(尽管不是全部)-代表图像文件名(例如'picture.jpg')-在它们的末尾都有一个不可见的“ / n”(使得它们“ picture.jpg / n”),当HTML到达我的ASP / HTML页面时,HTML转换为%OA%OD字符串。
我编写了一个查询以从数据库中删除所有这些内容,并且我的应用程序现在可以正常运行,并且在查询字符串的末尾没有附加“%OA%OD”字符串。
感谢您的所有帮助:)