将文本从 YouTube 复制到剪贴板会出现破折号?

将文本从 YouTube 复制到剪贴板会出现破折号?

这是我在 YouTube 视频评论部分找到的链接示例。

gnu.org/distros/free-distros.h­tml

这是它在评论中显示的方式。

如果我突出显示此链接并复制到剪贴板(ctrl + c),然后转到新的浏览器选项卡并将其粘贴(ctrl + v)在地址栏中,那么它就会显示出来。

gnu.org/distros/free-distros.h­tml

看起来一样,对吧?但如果我按 Enter,就会出现错误。

404页面不存在

在 GNU 网络服务器上找不到您要查找的页面。

如果您点击的链接已损坏,并且损坏的链接页面上有明确的地址可以报告错误,请使用该地址。

URL 也变为如下形式。

http://www.gnu.org/distros/free-distros.h%C2%ADtml%EF%BB%BF

如果我删除%C2%ADtml%EF%BB%BF并输入tml以便取回地址http://www.gnu.org/distros/free-distros.html,然后按 Enter,那么现在它就可以正常工作,并且页面可以加载。

我心想这很奇怪,所以我尝试将相同的文本从剪贴板粘贴到纯文本编辑器(记事本)中,这就是我得到的结果。

gnu.org/distros/free-distros.h­-tml

之间的冲刺如何H页面引入了什么?这就是我收到 404 错误的原因。但粘贴到地址栏时 URL 会正确显示。这可能是某种隐藏字符吗?

另外,如果我返回 YouTube 并突出显示该链接,我可以看到最后三个字母上有一个凸起。突出显示的“tml”周围的高度较高。您可以在下面的屏幕截图中看到这一点。

屏幕1

屏幕2

为什么会发生这种情况?发生了什么事?Google 会不会故意对链接进行加盐处理?

更新

如果我粘贴到 Notepad++(版本 6.3)中,我会得到以下内容。

gnu.org/distros/free-distros.h­tml?

如果我尝试将其粘贴到 Google Chrome 浏览器的地址栏中,URL 末尾似乎会出现某种隐藏字符。请参阅下面的屏幕截图。

屏幕3

那不是一片空白。那是别的东西……外星人的东西!来自 X 星球的东西?

注意:末尾的垂直线不是我所指的线,那只是文本输入光标在闪烁。

更新 2

使用元素检查工具检查 Firefox 中的 html 代码。

屏幕4

为什么打开的 wbr 标签内有一个方块?

更新 3

“正方形”似乎是软连字符实体。下面是此特定行的实际源代码。

<p>gnu.org/distros/free-distros.h<wbr>&shy;tml</p>

您在此处看到的是软连字符&shy;。HTML 标记(例如 或 ie 表示粗体文本)不可选择。当您在浏览器中突出显示网页的文本时,您并没有选择 HTML 标记。其中的任何内容都<>不会显示。

因此,软连字符似乎是复制粘贴问题的根本原因。它不会显示在网页上,但当您突出显示文本时会选中它。

更新 4

这是我将 URL 粘贴到 Microsoft Word 2010 并查看隐藏字符时显示的样子。

屏幕5

要将文本光标从 移动.|html到 ,.ht|ml需要按三次箭头键。您可以通过上图知道这是为什么。这是因为这个隐藏的字符。当光标位于这个奇怪的字符前面时,按 Alt+X 会显示 0068。当光标位于该字符后面,字母 T 前面时,什么也不会显示。0068 只是字母 H 的 Unicode 代码页。

答案1

是的,这很麻烦。

有两个连字符:普通的 \u2D 和有趣的连字符。有趣的连字符有时用于 YouTube 评论中。 \u00AD 并隐藏。

粘贴到记事本中(以删除格式),并且记事本会显示它,然后粘贴到 MS Word 中(或者只是在 Ms Word 中选择性粘贴..未格式化的 unicode),将光标放在斜体字符或任何字符的右侧,然后按 ALT-x,您就会看到它的 ASCII 或 unicode 代码。

这看起来可能很奇怪。请注意,有几个字符有两种不同的类型。一种是您通常使用的类型,在 0-7F 范围内,另一种是人们往往不怎么使用或根本不使用的类型,即 >7F。两种类型的空格(一种是普通空格,另一种称为不间断空格,ascii 代码 160 \uA0 可以使用)。有两种类型的管道 7C 和 A6,A6 只会带来问题,因为它会导致命令行失败。还有两种类型的 hiphen,您看到的第二种,行为也很奇怪,因为 youtube 评论有时会使用它并隐藏它,而不将其显示为 hiphen。

我看到 YouTube 在评论中使用的另一个有趣的字符是 \uFEFF。您可以运行 notepad2(下载它),选择文件..编码..UTF-8,然后粘贴文本,并搜索 \uFEFF 并将其替换为空(选中显示转换反斜杠的框)。

同样,您可以打开 notepad2,搜索 \u00AD(那个有趣的 hiphen)并将其替换为常规 hiphen。Editpad 免费版也许可以做到这一点,但我使用专业版来支持正则表达式。

我注意到,charmap 无法正确复制有趣的 hipen。(因此,如果您想进行实验,并选择将其复制并粘贴到某个软件中,并且它显示了有趣的内容,那就怪 charmap),但它可以从我的浏览器(chrome)中的链接中很好地复制(与字符一样)。但如果没有这个字符就更好了,这很麻烦!但您可以在 Ms Word 中看到它的 ASCII 码,并且可以在 notepad2 中搜索并删除它

您可以从 charmap 中看到它(\u00AD)被称为“软 Hiphen”(我很高兴他们没有将该标题加为 Hiphen!)

在图片中我使用了 Ms Word 并按了 ALT-x

在此处输入图片描述

答案2

查看该部分页面的源代码,我看到了以下内容:

<p>gnu.org/distros/free-distros.h<wbr>­tml</p>

Youtube 似乎自动插入了一个<wbr>标签。这是一个断词机会,它告诉浏览器如果需要的话,这个单词可能会被断开以插入一个换行符。

在 UTF-8 编码的页面上,它显示为ZERO-WIDTH SPACE,不显示任何内容,但允许换行。这就是导致您的编码问题的原因。

Youtube 似乎有一种算法可以<wbr>在合适的位置自动插入长单词(而不是将音节切成两半),但由于http://URL 开头缺少 ,算法无法识别它,因此假定它是一个可以断开的单词。

相关内容