【问题标题】:What is the difference between " ’ " and " ' ""'" 和 "'" 和有什么不一样
【发布时间】:2017-01-30 21:55:47
【问题描述】:

由于某种原因,Redcarpet Markdown 将 ' 呈现为 ',而将 呈现为 。有两种类型的单引号吗?为什么 Redcarpet 对待一个与另一个不同。 (Ascii 表似乎有一个,但在 unicode 下我假设还有更多?)

搜索 ' 和 chrome 的 find (command + f) 一样有点困难,而且 Google 搜索似乎将这两个字符视为一个字符。

【问题讨论】:

  • 我在理解这个问题时遇到了一些麻烦......你看到它们是两个不同的字符,否则你不会显示两个不同的字形(一个是直的,一个是钩的,至少是它们显示在我的屏幕上)......所以这当然意味着它们具有不同的字符代码。如果其中一个具有特殊含义而另一个没有,那么一个会被逃脱而另一个不会。我错过了什么吗?
  • 不,你没有错过任何东西。我想知道的是这两个角色之间的区别是什么,为什么 Redcarpet 会逃避一个角色并渲染另一个角色。有没有比@markdown.render(a.content.gsub("'", "’"))更好的解决方案@
  • 与 HTML 相比,Markdown 被认为是编写文本文档的一种简化方式。规范的呈现是 HTML。 ASCII 与 HTML 没有任何关系。所有字符都是 Unicode,无论文档编码如何,也无论是否写为数字字符实体引用。提示:要研究一个字符,请将其置于 U+hhhhh 格式中,其中 hhhhh 是代码点的 4 到 5 个十六进制数字。

标签: ascii redcarpet


【解决方案1】:

是的,有。这两个引号字符是:

hex(decimal) codepoint = 2019(8217) and character = ’
hex(decimal) codepoint = 27(39) and character = '

代码点(第一个数字是十六进制,第二个是代码点的十进制值)是不同的。

根据Unicode标准,第一个是:

2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;;

而第二个是

0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;

也许 RedCarpet 应该对第一种引用类型使用正确的 HTML 实体转义。 (This page 表示应该转义为’

当您说第二个引号:' 是 7 位 ASCII 编码的一部分时,您是对的。

即使第一个引用 ’ 呈现为:' 与第二个引用:' 相比,人眼无法区分,您也可以使用操作系统的输入法在 Chrome 或任何其他编辑器/浏览器上搜索它。这是因为输入字符是所谓的Input Method 的工作,如果您知道它支持的输入法,您可以在给定操作系统中输入任何字符。例如,在 Mac 上

  • 在菜单栏上使用如下所示的 U+ 键盘。
  • 在 Chrome 上按 Cmd + F 开始搜索。
  • 按住 Alt 键并输入您要查找的报价的 unicode 十六进制值 (2719)。搜索框中将出现的内容是 '(事实上,这就是我打印该引用的内容!)

Linux 和 Microsoft Windows 上提供了类似的工具。

【讨论】:

  • 注意到了。应该注意的是,单引号和撇号有不同的语法用法
【解决方案2】:
//Here is the C# way to handle in programme
// example for removing apostrophe from O’Reilly
char charToRemove = '\''; // works in android and windows
char charToRemove1 = (char)8217; // works in iOS/macOS
string myName = "O’Reilly";

myName = myName.Replace(charsToRemove.ToString(), "");  // Android windows
myName = myName.Replace(charToRemove1.ToString(), "");  // ios


Console.Writeline(myName);

【讨论】:

    猜你喜欢
    • 2012-05-27
    • 1970-01-01
    • 2012-11-08
    • 2022-01-15
    • 2021-11-29
    • 2011-08-16
    • 2021-06-23
    • 2019-04-04
    • 2011-02-20
    相关资源
    最近更新 更多