【问题标题】:Hidden character (looks like a bullet) destroys document隐藏字符(看起来像子弹)破坏文件
【发布时间】:2012-08-31 08:51:17
【问题描述】:

我遇到了一个问题,隐藏字符既没有出现在数据库 (phpmyadmin) 中,也没有出现在网站中。网站有 utf-8 字符编码。如果我将带有“隐藏”字符的字符串复制/粘贴到记事本中,我可以看到它。它看起来就像一个子弹字符,但被隐藏了。这是什么类型的字符,可以用 PHP 删除吗?

能够输入此字符的用户使用的是 Mac,并且可能正在将文档(可能是 unicode?)复制/粘贴到我们网站上的表单中并保存。所以这个字符在 utf-8 编码中不可见,但如果我将字符串复制到记事本文档中则可见。

这是字符串末尾的隐藏字符。看起来像子弹:

【问题讨论】:

  • 您能发布一个指向生成的输出 (html) 的链接吗?
  • link 这是一个链接。将此内容复制/粘贴到记事本中,您应该会看到该字符。

标签: php database unicode utf-8 notepad


【解决方案1】:

复制角色,然后启动 PowerShell 并执行以下操作(是的,很复杂,抱歉):

'U+{0:X4}'-f+[char]'<PASTE>'

并将字符粘贴到&lt;PASTE&gt; 的位置。它应该为您提供该字符的 Unicode 代码点。然后,您应该能够编写一些将其从字符串中删除的内容,但在我看来,不应该有任何破坏文档布局的输入,除了 RTL 标记之类的有趣内容。


上面的简短解释:[char]'x' 将单个字符串转换为 char,+ 然后将其视为数字(类似于[int],但更短)。剩下的就是一个格式字符串和格式操作符-f

【讨论】:

  • 它将字符转换为问号。做你说的只是给出: PS C:\Users\user> 'U+{0:X4}-f'+[char]'?' U+{0:X4}-f? PS C:\Users\user> ?
  • U+2028 这可能是它?谷歌显示它是一个行分隔符:fileformat.info/info/unicode/char/2028/index.htm
  • 可能是。这是试图统一整个 CR/LF 混乱。有些编辑可以应付得很好,有些编辑会做一些奇怪的事情。不过,HTML 应该将其视为任何其他空格。
猜你喜欢
  • 2021-12-31
  • 1970-01-01
  • 2016-01-08
  • 2013-11-06
  • 2012-05-02
  • 2012-03-23
  • 2016-05-24
  • 2017-06-16
  • 1970-01-01
相关资源
最近更新 更多