今天碰到了一个关于空格的很奇怪的问题,一个字符串包含有连续的多个空格,为了能够在页面上显示多个空格,进行了多个 的转换,例如:aa bb cc就变成aa bb cc,这样传回页面之后,还是将这个内容放入一个hidden隐藏域中,然后获取这个隐藏域的value和“aa bb cc”进行比较,但发现不等。
这个问题以前没有碰到过,总认为 不就是一个空格了,那我输入一个空格,应该相等才对,但事实告诉我不等。
使用上面的代码将那个奇怪的空格的ASCII码打印出来,一看就知道等于160,而我输入的空格输出的是32,然后查询了ASCII对照表,32和160都是空格。
然后使用的解决方案就是,要么将aa bb cc替换为“aa bb cc”,这样页面的空格编码就是32了,而不是160了。还有一种方法就是页面显示的时候进行转码,而隐藏域中还是存放未转码之前的值,也就是页面上的文字信息显示为aa bb cc,而hidden中的值是“aa bb cc”,问题搞定。
这个问题以前没有碰到过,总认为 不就是一个空格了,那我输入一个空格,应该相等才对,但事实告诉我不等。
String str1 = request.getParameter("str1");
System.out.println(str1.charAt(2) - 0);
使用上面的代码将那个奇怪的空格的ASCII码打印出来,一看就知道等于160,而我输入的空格输出的是32,然后查询了ASCII对照表,32和160都是空格。
然后使用的解决方案就是,要么将aa bb cc替换为“aa bb cc”,这样页面的空格编码就是32了,而不是160了。还有一种方法就是页面显示的时候进行转码,而隐藏域中还是存放未转码之前的值,也就是页面上的文字信息显示为aa bb cc,而hidden中的值是“aa bb cc”,问题搞定。