由于某种原因,Redcarpet markdown在渲染\'为时渲染为。单引号有两种类型吗?为什么红毯会以不同的方式对待其中一个。(Ascii 表似乎有一个,但在 unicode 下我假设还有更多?)'\xe2\x80\x99\xe2\x80\x99
搜索\'and\xe2\x80\x99有点困难,chrome 的 find (command + f) 和 Google 搜索似乎都将这两个字符视为同一个。
是的,有。这两个引号字符是:
\n\nhex(decimal) codepoint = 2019(8217) and character = \xe2\x80\x99\nhex(decimal) codepoint = 27(39) and character = \'\nRun Code Online (Sandbox Code Playgroud)\n\n代码点(第一个数字是十六进制,第二个是代码点的十进制值)是不同的。
\n\n根据Unicode标准,第一个是:
\n\n2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;;\nRun Code Online (Sandbox Code Playgroud)\n\n而第二个是
\n\n0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;\nRun Code Online (Sandbox Code Playgroud)\n\n也许 RedCarpet 应该使用正确的 HTML 实体转义第一种类型的引用。(此页面说它应该转义为’)
当你说第二个引号: \' 是 7 位 ASCII 编码的一部分时,你是对的。
\n\n即使第一个引号(’呈现为:\xe2\x80\x99)与第二个引号对于人眼来说很难区分:\',您也可以使用您的操作系统在 Chrome 或任何其他编辑器/浏览器上搜索它输入法。这是因为输入字符是所谓的输入法的工作,如果您知道给定操作系统支持的输入法,则可以在给定操作系统中输入任何字符。例如,在 Mac 上:
Linux 和 Microsoft Windows 上也提供类似的功能。
\n\n\n