5 msΒ·
Ask HN: Unicode text variants?
π
π·π
ππ€ π₯πππ£π ππππππ
π πππ πππππππππ π―πΈπ»πΆπͺπ½π½π²π·π°? I thought each character was supposed to be different. Is it recognized as equivalent by all text-search programs?
- patio11 13y agoIs it recognized as equivalent by all text-search programs? The magic words you want to look for are [Unicode canonicalization], which aspires to make that (and other string-comparison needs) actually work. Implementation quality across the universe of programs is... mixed.
- Someone 13y agoCanonicalization is more restricted and different. More restricted in that it only treats truly identical strings that have multiple representations the same. Normalization won't turn "foo" and "FOO" into the same string, but it will turn "fΓ²Γ³" and "fo<with grave accent>o<with acute accent>" into the same string. Different in the sense that it creates a new string, rather than comparing two strings. Just like you neither need nor want to do a tolower(s) when comparing case-insensitively, you don't need nor want to normalize unicode to do a normalization invariant comparison. The unicode standard uses "equivalence" to treat "<fl ligature>" and "fl" as equivalent (see http://en.wikipedia.org/wiki/Unicode_equivalence; http://en.wikipedia.org/wiki/Unicode_equivalence; Unicode technical report on normalization at http://www.unicode.org/reports/tr15/tr15-18.html http://www.unicode.org/reports/tr15/tr15-18.html)
- rchowe 13y agoTo me, it seems useful in cases where the style is a part of the meaning of the symbol. This mostly comes up in mathematics, where a letter represented in fraktur or blackboard bold has some semantically different meaning, and this meaning can be part of the file instead of part of the foramtting of the file. The practical part of me agrees with patio11, and that the knowledge gain of having these semantics inherent in the file is offset many times by possibly having to treat different bytes as the same character semantically.
- ihuman 13y agoTo add to that, some languages use some of the same characters from the English language, but formatted differently in order to fit into that language's rules. For example, Japanese characters are the same width, so in Unicode there are the number and letters with ο½ο½ο½ο½γο½ο½ο½ο½ο½ in order to fit in when English is mixed in with Japanese.
- EwanG 13y agoAnyone else seeing this (latest version of Chrome on Win 8.1) as all boxes? If I highlight and right-click, it will ask me if I want to search for each word, so that I was able to see this is a question about Unicode formatting. I tried setting my fonts to Unicode fonts in the Advanced Settings, but that didn't seem to help.
- ibelimb 13y agoChrome on iOS shows it as all boxes.
- greggman 13y agoYou mean Safari (or WebView) on iOS. Chrome on iOS is just using a skinned WebView because Apple's rules don't allow anything else. In other words Safari on iOS shows the same boxes. When and if Apple danes to fix it it will also be fixed on Chrome for iOS. It's possible it's just a font issue. Tried pasting in FB Messenger, iOS Notes, iOS Messages. All of them just show boxes except for π π·π
- arm 13y agoIt seems like it is both a font issue and a Safari issue. Hereβs a screenshotΒΉ of all the characters in the string along with their Unicode codepoints: http://f.cl.ly/items/2m0S0t3Y471q1X2u0W1u/Screen%20Shot%202014-03-12%20at%201.37.32%20AM.png http://f.cl.ly/items/2m0S0t3Y471q1X2u0W1u/Screen%20Shot%2020... Note that other than U+0020 (SPACE), U+1F146 (SQUARED LATIN CAPITAL LETTER W), U+1F137 (SQUARED LATIN CAPITAL LETTER H), and U+1F148 (SQUARED LATIN CAPITAL LETTER Y), iOS doesnβt have any fonts containing glyphs for any of the characters. (The squared letter characters are covered (on iOS 7 at least) by the fonts Hiragino Kaku Gothic ProN and Hiragino Mincho ProNΒ²). However, for some reason, Safari on iOS is not performing font substitution in this situation and using one of the Hiragino fonts to display them. As you noted, this font substitution seems to be working fine in other iOS apps, as these squared letters are displaying there. As an aside, on iOS 7, it is finally possible to install custom fonts yourselfΒ³ via a configuration profileβ΄. Iβve installed a few fonts Iβve needed in this wayβ΅, and while they work perfectly in apps like Pages (for iOS), Safari seems to completely ignore their existence. Even after installing them and rebooting, Safari still shows the entire string as boxesβΆ. (Symbola alone has a glyph for every character in the above string, so every character should certainly be displayable). However, copying and pasting the string of boxes into an app like Pages shows all the characters just fineβ·. ββββββ ΒΉ β Screenshot is of UnicodeChecker (http://earthlingsoft.net/UnicodeChecker/ http://earthlingsoft.net/UnicodeChecker/). Β² β http://support.apple.com/kb/HT5878 http://support.apple.com/kb/HT5878 Β³ β http://www.saturngod.net/create-custom-font-for-ios-7 http://www.saturngod.net/create-custom-font-for-ios-7 β΄ β https://developer.apple.com/library/ios/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html https://developer.apple.com/library/ios/featuredarticles/iPh... β΅ β http://f.cl.ly/items/0o360a3t1q2R3E2a2g2b/IMG_0403.jpg http://f.cl.ly/items/0o360a3t1q2R3E2a2g2b/IMG_0403.jpg βΆ β http://f.cl.ly/items/3f1o1R2F082i3I0B1y1o/IMG_0404.jpg http://f.cl.ly/items/3f1o1R2F082i3I0B1y1o/IMG_0404.jpg β· β http://f.cl.ly/items/3y1J2G0u2u1c0Y1w2Q3Z/IMG_0405.jpg http://f.cl.ly/items/3y1J2G0u2u1c0Y1w2Q3Z/IMG_0405.jpg
- greenyoda 13y agoHN Search doesn't find "Unicode text variants", so it's probably not a good idea to use these characters in article titles: https://hn.algolia.io/#!/story/forever/prefix/0/unicode%20text%20variants https://hn.algolia.io/#!/story/forever/prefix/0/unicode%20te... What's weird is that if I copy/paste the variant characters from the article title into HN Search, it matches a whole bunch of articles, none of which are this one. DuckDuckGo finds this post as its first hit if you copy/paste the title into its search box, but not any other articles about "Unicode" or "variants" (just lots of random junk). Google, on the other hand, apparently canonicalizes the text, since it returns hits on other articles about Unicode and text variants, as well as this post. So, here we have three text search programs that behave rather differently. Also, Firefox doesn't find any of the variant text strings on this page if you search for the normal (ASCII) characters.
- GeneralMayhem 13y agoChromium's ctrl-f also canonicalizes, at least well enough to recognize this title.
- arikrak 13y agoBing doesn't find it when searched in plain-text, while Google can find it in both their auto-complete suggestions and in Chrome's page search. +1 Google.
- redox_ 13y agoYou're right; MySQL is currently throwing an error (and therefore we don't even send the item to the Algolia engine). Gonna take a look tomorrow or the day after. Mysql2::Error: Incorrect string value: '\xF0\x9D\x96\x86 m...' for column 'text' at row 1: Thank you for the bug report ;)
- xroche 13y ago"utf8" in mysql is limited to 16-bit range (!) ; see http://golem.ph.utexas.edu/~distler/blog/archives/002539.html http://golem.ph.utexas.edu/~distler/blog/archives/002539.htm... - basically, you need to use "utf8mb4" (http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8m...)
- nikdaheratik 13y agoAs rchowe said, the different formats are mostly used in higher math and have semantic meanings specific to that context. These should almost never be used outside that context as they have different byte values from the usual Roman characters (which means the computer doesn't even see them as equivalent without "help" from the programmer), may not be supported by every browser or text search program, and may not even render correctly on many OS systems as the glyph for that character may be swapped in for a glyph from a different font or not at all for older systems.
- deleted 13y ago[deleted]
- arikrak 13y agoCool, this made it to the front page! I just discovered this whole area of unicode and wanted to see if it would show up here and why it exists. I guess the answers about it being for Math make sense.
- Elv13 13y agoFrom what I see, applications developed in latin (charset), but non english speaking regions tend to handle this better. The reason is that people usually want to search without accentuated characters and still find what they are looking for. So issues like this one are handled faster in the dev cycle as users _will_ complain.
- JohnHaugeland 13y agoThose are not actually formatting. Those are math symbols. Math relies on formatting to convey meaning, and Unicode is expected to be able to render math correctly without formatting. Therefore, it must be that math symbols' formatting is actually a feature of the character. My Ubuntu box can't render the first three so I don't know what they are. "is there" is blackboard lettering, though Unicode insists on calling it double-struck lettering. You may recognize the capital R in double-struck, β, as the symbol for the Reals. http://en.wikipedia.org/wiki/Real_number http://en.wikipedia.org/wiki/Real_number Similarly, β€ is the integers, β is the complexes, et cetera. I can say this on HN, without formatting, because unicode. The word "unicode" is in Mathematical Bold Italic. The words "for different," which you probably interpret as Fraktur, are ... oh wait unicode calls them mathematical fraktur. http://www.w3.org/TR/MathML2/bycodes.html#U1D58C http://www.w3.org/TR/MathML2/bycodes.html#U1D58C π means a ring group. β΅ is used for the cardinality of infinite sets. π is a Lie algebra. Etc. http://en.wikipedia.org/wiki/Mathematical_alphanumeric_symbols http://en.wikipedia.org/wiki/Mathematical_alphanumeric_symbo... I don't know what the last set are.
- xroche 13y ago"why" is squared latin capital ("Enclosed Alphanumeric Supplement" Unicode block -- www.unicode.org/charts/PDF/U1F100.pdfβ) "for different" is mathematical bold fraktur ("Mathematical Alphanumeric Symbols" Unicode block -- www.unicode.org/charts/PDF/U1D400.pdfβ) "formatting" is mathematical bold script ("Mathematical Alphanumeric Symbols" Unicode block)