{"schema":"cpc-unicode-answer-v1","question":"How is a curly apostrophe different from an ASCII apostrophe?","answer":"A typographic closing single quote, also often used as an apostrophe. Code points: U+2019. It is not equivalent to the ASCII quote character in programming-language syntax. A non-equivalent fallback is \"'\" (ASCII apostrophe). Loses typographic styling. Exact string match: no. NFC match: no. Appearance and meaning were not tested. Font coverage, shaping, and application acceptance were not tested, so those results are unknown.","unicodeVersion":"18.0.0","purpose":"identifier","citation":"Do not invent a platform-support claim from this data.","page":"/answers/curly-apostrophe-versus-ascii-apostrophe/","markdown":"/answers/curly-apostrophe-versus-ascii-apostrophe.md","sample":"’","codepoints":[{"codepoint":"U+2019","name":"RIGHT SINGLE QUOTATION MARK","displayLabel":"’","warnings":["curly-apostrophe"],"explanations":[{"id":"curly-apostrophe","title":"Right single quotation mark","behavior":"A typographic closing single quote, also often used as an apostrophe.","limitation":"It is not equivalent to the ASCII quote character in programming-language syntax.","fix":"Use ASCII apostrophe only where required by the input grammar.","source":"https://www.unicode.org/reports/tr44/","alternatives":[{"value":"'","reason":"ASCII apostrophe","tradeoff":"Loses typographic styling."}],"evidenceTier":"standards-informed-editorial","evidence":{"behavior":"standards-informed","compatibility":"not-tested","repair":"editorial-guidance"}}]}],"comparison":{"schema":"cpc-unicode-compare-v1","exactlyEqual":false,"sameNFC":false,"sameNFKC":false,"sameVisualAppearance":"unknown","sameMeaning":"unknown","left":{"codepoints":["U+2019"],"graphemes":1},"right":{"codepoints":["U+0027"],"graphemes":1},"explanation":"Normalization equivalence does not guarantee the same rendering, semantics or acceptance in an application."},"graphemes":{"status":"available","method":"runtime-intl-segmenter","unicodeDataVersion":"runtime-unknown","count":1,"segments":[{"text":"’","utf16Offset":0,"codepoints":["U+2019"]}]},"normalizationChanged":{"NFC":false,"NFD":false,"NFKC":false,"NFKD":false},"normalizationUnicodeDataVersion":"runtime-unknown","targetCompatibility":{"status":"unknown","evidenceTier":"not-tested","purpose":"identifier","explanation":"No OS, font, browser, application, field policy or rendering engine was tested. Unicode validity and segmentation do not establish actual display or acceptance."}}