网站上出现奇怪的符号(L SEP)?

66
我注意到在我的网站http://www.cscc.org.sg/上出现了一个奇怪的符号。

输入图像说明

它显示为L SEP。在HTML代码中,它也是一样的。

输入图像说明

能有人向我展示如何移除它们吗?


我该如何移除它?或者禁用它在浏览器中的显示?我需要去代码中手动删除分隔符吗?谢谢!有没有一种自动化的方法在它们出现之前移除这些字符? - BigRedDog
你需要在页面的代码中删除两个字符并修复你的数据库。请查看重复项。 - mplungjan
https://dev59.com/rWYq5IYBdhLWcg3wzDvk - mplungjan
2
and use a <br/> instead. - Eduardo Chongkan
在一些 MS Word 文件中出现相同的问题,解决方法也类似:打开查找/替换对话框,搜索 ^u8232 并用空格或回车进行替换,具体取决于您的意图。 - jsm
4个回答

34

该字符是U+2028或HTML实体代码&#8232;,它是一种换行符号,实际上不应该被显示。我猜测要么是您的服务器端脚本未能将其转换为新行,要么是您使用了可以显示它的字体。

但由于我们知道该字符的HTML和UNICODE值,因此我们可以添加一些jQuery代码来消除该字符。现在,我只是在下面的代码中用空格替换它。只需添加以下内容:

$(document).ready(function() {
    $("body").children().each(function() {
        $(this).html($(this).html().replace(/&#8232;/g," "));
    });
});

这应该有效,但请注意我没有测试过,也可能无法使用,因为我的浏览器中没有一个能够显示出这个字符。

但如果不起作用,您可以尝试将文本块粘贴到http://www.nousphere.net/cleanspecial.php上,该网页将会去掉任何特殊字符。


谢谢。这段代码应该放在哪里?头部吗?我能把它作为一个函数添加到WP主题中吗? - BigRedDog
我会将代码添加到自己的文件中,因为我喜欢将脚本与HTML和CSS分开,但你可以将它放在任何地方。当页面加载时,$(document).ready()函数将被调用。对于WordPress,只需使用“添加脚本”按钮即可。 - thatguy
1
我觉得你会想用兼容的新行字符替换掉换行标记... 如果只是一个HTML文档,只需将它们替换为<br/>即可... 虽然最好使用更兼容的新行字符而不是添加HTML,这样在文档或文本块未启用HTML时仍然能正常显示... - OG Sean
8
请注意:全局调用 JS 的替换函数有时会产生奇怪的副作用,这些副作用很难调试。如果您是网站所有者,请在服务器端处理此问题。 - user2286243
性能方面听起来很糟糕... - Bergrebell

11

一些字体将LS渲染为L SEP。这样的字形是为了呈现字符的未格式化版本而设计的,例如在二进制编辑器中查看文件的原始字符时。在格式化的演示中,应该显示实际的行间距而不是字形。

问题在于Web服务器和Web浏览器都没有将LS解释为换行符。Web服务器可以检测到LS并用<br>替换它。这样的功能适用于动态生成HTML的Web服务器,但对于无需修改即可提供文件内容的Web服务器来说,会增加开销和复杂性。

如果LS出现在Web浏览器中,Web浏览器不会将其解释为格式化。页面格式仅基于HTML标记。例如,LF和CR只影响HTML源代码的格式化,而不影响网页的格式化(除了

部分)。原则上,浏览器可以将LS和PS(段落分隔符)解释为<br><p>,但HTML标准没有告诉浏览器这样做。(我认为这会是一个很好的补充。)

要使用HTML标记(如<br>)替换原始的LS字符以显示内容创建者可能想要的行分隔符,您需要将LS字符替换为HTML标记。


10
只有一个合理的答案。请不要用糟糕的jQuery脚本来修复症状,而应该在源代码中删除错误的字符。 - jameshfisher

3
这是解决“奇怪符号”问题的方案。
$(document).ready(function () {
  $("body").children().each(function() {
      document.body.innerHTML = document.body.innerHTML.replace(/\u2028/g, ' ');
  });
})

2
这里提供的 jQuery/JS 解决方案可以移除字符,但会破坏 Revolution Slider。我最终使用了 Better Search Replace 插件在 wp_posts 表中进行字符搜索替换:https://wordpress.org/plugins/better-search-replace/
当你从页面复制并粘贴字符到插件框中时,该字符是不可见的,但确实有效。在进行数据库替换之前,请务必备份数据库(或完整备份)!并确保取消选择底部复选框以不使用插件进行干运行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接