`
hellohank
  • 浏览: 146164 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

HTML的空格与程序中的空格不同!

阅读更多

今天遇到一个诡异的问题,在系统的搜索页面的输入框中输入了一个字符串,前面带有空格,提交搜索,正常!再点搜索,擦,居然无法搜到结果!

 

于是查找原因吧,过程简短说明一下:

 

 首先,我看了一下URL中的值,本来空格应该是个“+”号,第一次查询确实是,可从第二次之后就不是了,浏览器输入框中URL这个词前面就是一个空格!见鬼了!因为URL中空格肯定必须得是“+”号!查看URL,发现这个空格编码为“%C2%A0”!尼玛,这是什么东西?!我的URL可是UTF-8编码,怎么会这样?!这又是个什么东西?

 

然后,我又查,本来好好一个空格,第二次提交时怎么就变成了这个鬼?!查了一下,页面的输入框回显也没有问题啊!这到底是什么情况?!

 

于是,我在Filter中截住请示,把搜索内容获取出来,将这个空格转换为char,一看之下,它的char=160!160是什么东东??上网一查,我呵呵了~~

 

空格的转义字符分为如下几种:

1.  &160#;不断行的空白(1个字符宽度)

2.  &8194#;半个空白(1个字符宽度)

3.  &8195#;一个空白(2个字符宽度)

4.  &8201#;窄空白(小于1个字符宽度)

 

看到第一条,我想大家应该知道了,我们在页面上显示信息时,是需要转义的(防Xss攻击),我们系统里面,因为内容显示的要求,我把所有空格转义成了“ ”的html空格!问题就这样产生了!

 

唉,人老啦,记性就不太好~记录一下吧,偶尔温故一下。同时,与诸君共勉!

 

PS:说一下我的解决方案吧:在系统的第一个Filter里面使用自定义的一个HttpServletWrapper把当前request包裹一下,重写里面的getParameter相关方法(有三个相关方法),在这里把取出的值中的页面空格转换成普通空格。

分享到:
评论

相关推荐

    微信小程序Text空格符号以及省略的展示

    在微信小程序开发中,`Text`组件是用于展示文本内容的核心元素。...通过理解并灵活运用以上知识点,开发者能够更好地控制微信小程序中的`Text`组件,实现对空格和文本省略的精确管理,从而提升用户体验。

    微信小程序中换行空格(多个空格)写法详解

    在微信小程序开发中,由于其自身的规则限制,与传统的HTML网页不同,不能直接使用HTML的换行符(` `)和空格实体(如` `)来实现文本的换行和空格插入。本文将详细介绍在微信小程序中如何实现换行和插入多个...

    微信小程序基础text空格省略号

    本篇文章将深入探讨如何在`text`组件中处理字与字之间的空格、插入符号,以及当文本过长时如何优雅地使用省略号进行显示。 一、添加空格 在微信小程序的`text`组件中,如果希望在文本之间插入空格,可以直接在文本...

    删除MarkDown文档中的 U+200B 零宽度空格字符(Typora中显示红点),格式化MD文件

    这个程序设计用于在指定的目录及其所有子目录中查找并处理Markdown文件(.md扩展名),自动删除文件中的零宽度空格字符。这大大简化了用户手动查找和替换这些特殊字符的繁琐过程。 在使用`FilterEmptyCharacters....

    取新闻网页内容去掉html标记和空格

    9. **测试与调试**:在编写代码后,务必进行充分的测试,确保能正确处理各种HTML结构,同时使用调试工具检查程序运行状态,确保无误。 10. **合规性与道德**:在实际操作中,抓取和处理网页内容时,必须遵守网站的...

    jQuery空格键开始随机图片抽奖代码

    【jQuery空格键开始随机图片抽奖代码】是一个利用JavaScript库jQuery实现的互动抽奖程序,它主要依赖用户按下键盘上的空格键(Space键)来触发随机选择图片的抽奖过程。这个程序的核心在于如何利用jQuery监听键盘...

    前端html网页代码用中文汉字书写。这次升级解决了空格键输入提示关键词的问题和一些已知问题!

    在文件列表中,我们看到一个名为“立→超文本(测试版).exe”的文件,这可能是一个用于测试新功能的应用程序或浏览器插件。"立→超文本"可能是指这个工具专注于HTML5的特性,尤其是与中文内容相关的展示和处理。...

    jQuery按空格键随机抽奖代码

    在这个抽奖程序中,jQuery主要负责监听键盘事件,特别是空格键(Spacebar)的按下。 1. **事件监听与处理** jQuery提供了`$(document).keydown()`方法来监听用户的键盘输入。当用户按下空格键时,回调函数会被...

    jQuery空格键操作随机抽奖代码.zip

    本项目"jQuery空格键操作随机抽奖代码.zip"提供了一种利用jQuery实现的简单、易用的抽奖程序,用户只需按下键盘的空格键即可启动抽奖过程。 首先,我们要理解jQuery中的事件处理。在这个案例中,关键的事件是"keyup...

    给textview添加空格共1页.pdf.zip

    7. **程序动态控制**:在运行时,你可以根据需要动态地插入空格。例如,根据屏幕尺寸计算出合适的空格数量,然后插入相应的空格。 8. **使用富文本库**:如果你的项目中涉及复杂的文本格式,可以考虑使用像`android...

    Js中去掉空格经典代码

    值得注意的是,虽然这种方法能够满足大多数需求,但在某些情况下可能需要考虑其他因素,比如国际化问题(不同语言环境下空格和其他空白字符的处理方式可能不同)以及性能优化等问题。此外,现代浏览器已经支持标准的...

    网页制作常见问题解答

    - 当在Dreamweaver中尝试居中一行文字时,如果未使用P、H1-H6、Div等格式标识符分隔,程序会将整段文字居中。 - 解决方法是确保居中文本用P标签或其他适当的HTML标签隔开。 3. **整个站点的查找与替换**: - 要...

    html5实现的点击空格键控制飞行游戏源码.zip

    在本资源"html5实现的点击空格键控制飞行游戏源码.zip"中,我们看到一个利用HTML5特性构建的简单飞行游戏。这个游戏允许玩家通过点击空格键来控制游戏中的飞行器。 首先,HTML5的核心是其强大的Canvas元素,这是一...

    第七节 空格分隔属性中的XSS-01

    **第七节 空格分隔属性中的XSS-01** 在Web应用程序的安全领域,跨站脚本攻击(Cross-Site Scripting,简称XSS)是一种常见的安全漏洞,允许攻击者向用户注入恶意脚本。XSS攻击通常发生在动态生成的网页中,当服务器...

    使用innerHTML时注意处理空格和回车符(asp后台处理)

    这是因为浏览器在解析HTML时,会将连续的空格视为一个空格,并且回车符(`\r\n` 或 `\n`)通常被解释为换行,这可能导致段落的意外结束或者格式错乱,从而影响程序的正常运行。 例如,如果你的 `innerHTML` 内容...

    用手机控制电脑空格和左右(手机不用装app)修复版

    标题 "用手机控制电脑空格和左右(手机不用装app)修复版" 暗示了一个技术方案,它允许用户通过手机远程控制电脑的空格键和左右箭头,而无需在手机上安装额外的应用程序。这个解决方案可能是基于网页应用或者特定的...

    SHDocVm.WebBrowser获取网页内容不去空格

    在IT行业中,尤其是在Windows应用程序开发领域,我们经常需要与网页交互,这可能涉及到从网页中获取内容并进行处理。在本案例中,我们要讨论的是如何使用SHDocVw的WebBrowser控件来获取网页内容时去除空格。SHDocVw...

    个关键字请用空格分隔,最多填写5个。点

    不过,从【部分内容】中可以观察到一些与编程语言C++相关的词汇和HTML文件的痕迹,因此我们可以尝试围绕这些线索展开讨论。 ### C++ 编程基础 #### 1. C++ 概述 C++是一种广泛使用的通用编程语言,它支持多种编程...

    asp去除html标记与空格的正则

    在ASP(Active Server Pages)开发中,有时我们需要处理用户输入或者网页内容,去除其中的HTML标记和空格,以确保数据的纯净性或安全性。在给出的代码段中,我们看到一个名为`nohtml`的函数,它使用正则表达式来实现...

Global site tag (gtag.js) - Google Analytics