{"schema":"cpc-unicode-exact-v1","unicodeVersion":"18.0.0","purpose":"identifier","citation":"Do not invent a platform-support claim from this data.","missingDoesNotMeanUnassigned":true,"visibilityMethod":"Class uses scalar ranges, then the runtime's Unicode property escapes for marks and format characters. Age comes from DerivedAge when the age table loads. previewFont is this site's bundled cmap only. destination is not-tested.","localFontMethod":"cmap membership and any HarfBuzz result are for these two bundled fonts only. A fixture miss is not destination coverage. A scalar absent from fixtures was not measured.","text":"’","characters":[{"codepoint":"U+2019","name":"RIGHT SINGLE QUOTATION MARK","group":"General Punctuation","inReference":true,"displayLabel":"’","validScalar":true,"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"}}],"formats":{"codepoint":"U+2019","htmlDecimal":"&#8217;","htmlHex":"&#x2019;","cssEscape":"\\2019 ","javascriptEscape":"\\u2019"},"visibility":{"class":"assigned-or-unknown","ifMissingGlyph":"If you see a hollow box, a hex box, or a boxed question mark, that is the font's missing-glyph sign. It is not a separate character, it is not proof the scalar is unassigned, and it is not U+FFFD unless this string contains U+FFFD. Destination font, firmware, and app were not tested.","age":"1.1","ageSource":"DerivedAge","previewFont":{"file":"NotoSansSymbols2-Regular.ttf","label":"Symbols","evidenceTier":"bundled-font-cmap","note":"This site's bundled preview font lists this scalar in its cmap. The destination font, firmware, and app were not tested."},"destination":"not-tested"},"localFont":null,"confusables":{"inTable":true,"evidenceTier":"uts39-confusable-skeleton","destination":"not-tested","skeleton":["U+0027"],"others":["U+0027","U+0060","U+00B4","U+02B9","U+02BB","U+02BC","U+02BD","U+02BE"],"othersRemaining":29}}],"graphemes":{"status":"available","method":"runtime-intl-segmenter","unicodeDataVersion":"runtime-unknown","count":1,"segments":[{"text":"’","utf16Offset":0,"codepoints":["U+2019"]}]},"normalization":{"method":"runtime-string-normalize","unicodeDataVersion":"runtime-unknown","forms":{"NFC":{"changed":false,"result":null},"NFD":{"changed":false,"result":null},"NFKC":{"changed":false,"result":null},"NFKD":{"changed":false,"result":null}}},"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."},"sources":{"bidi":"https://www.unicode.org/reports/tr9/","breaks":"https://www.unicode.org/reports/tr14/","normalization":"https://www.unicode.org/reports/tr15/","graphemes":"https://www.unicode.org/reports/tr29/","emoji":"https://www.unicode.org/reports/tr51/","ucd":"https://www.unicode.org/reports/tr44/"}}