Java 与#32; 及;nbsp;
谁能解释一下Java 与#32; 及;nbsp;,java,html,string,jsp,ascii,Java,Html,String,Jsp,Ascii,谁能解释一下和#32;和 我将html数据以二进制形式存储在数据库中,空间可以是或 或有时 另外一个问题是,当我使用JSoup lib将HTML转换为纯文本时,它正确地转换了HTML,但如果我使用java的String.contains(my String)方法。看起来具有的HTML数据与具有 的HTML数据不同。在任何一个字符串中都找不到字符串,反之亦然 例如: HTML1:This ;是 ;我的 ;测试 ;字符串 HTML2:这是我的测试字符串
和#32;和
我将html数据以二进制形式存储在数据库中,空间可以是
或 代码>或有时 代码>
另外一个问题是,当我使用JSoup lib
将HTML转换为纯文本时,它正确地转换了HTML,但如果我使用java的String.contains(my String)方法。看起来具有
的HTML数据与具有 的HTML数据不同代码>。在任何一个字符串中都找不到字符串,反之亦然
例如:
HTML1:This ;是 ;我的 ;测试 ;字符串
HTML2:这是我的测试字符串
如果我使用JSoup将其转换为纯文本。它回来了
HTML1:这是我的测试字符串
HTML2:这是我的测试字符串
但两个字符串仍然不相同。为什么会这样? 是空格键的字符
和 都是不间断空格的字符
如果您的数据来自不同的来源,则可能是空间符号的编码方式不同
在直接比较中,它们可能会显示为不同代码>,只是一个空格字符而已。此字符的常规出现将在末尾折叠为一个空格
其中as
和
都表示不间断空格字符,如果它们连续出现,则它们将折叠或中断为一个空格字符
只是它们之间的区别在于,
是HTML编号,
是HTML名称
基本上所有这些都是HTML实体。您可以通过以下链接了解和了解它们
和#32
是一个经典的空格,当你点击空格键时会得到这个空格,由他的HTML实体等价物表示
和&160代码>表示,通常用于防止浏览器将多个空格折叠在一起:
“ ; ; ; ; ;”
=>”(仅折叠到一个空间)
“”
=>“”(未折叠)
如果您正在解析同时包含经典空格和非中断空格的字符串,则可以安全地将其中一个替换为另一个。Java 8以后的版本应该可以使用以下方法:
string.replace(“\\h”,”)代码>
或
string.replaceAll(\\h,“”)代码>
其中\h是所述的水平空白字符这是错误的。正确的方式是string.replaceAll(\\h,“”);根据阿卜杜勒的建议修改!取决于你想要达到的目标