Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Things would probably be slightly better if Unicode wasn't so difficult to support properly. For example, good luck getting your UTF-8 text output to render correctly in a terminal window under all circumstances (try combining diacritics or funny letters like "ð–¥¶" - can you copy/paste that using the mouse?), or in a text editor like vi, Emacs with terminal UI. Using UTF-8 typically means having to think long and hard about filtering input/data, normalization and stuff like http://www.unicode.org/reports/tr36/ . If you don't, you'll run into such issues eventually even if you think your code needs to handle only a few "western" languages.


A decade ago that would be a valid argument, and processing Unicode text still isn't trivial, but nowadays Unicode support (UTF-8 in particular) is so well embedded in all operating systems and programming languages that this is not the problem. And on most operating systems the problem simply doesn't exist for most people because Unicode is the default.

The problem here is Microsoft clinging to legacy character encodings that have no place on a modern operating system as default for anything.


> so well embedded in all operating systems and programming languages that this is not the problem.

It's not the "enabling" of Unicode that's problematic, it's the features of more exotic Unicode codepoints that aren't correctly supported by many programs in all major operating systems, because they weren't designed with these features in mind.

Tell me, can you copy/paste the "ð–¥¶" character with the mouse after double-clicking it in your browser? It's a letter - http://unicode-table.com/en/16976/, so it should IMO be treated like a quoted word (correct me if I'm wrong). Safari on OS X selects either the quote and the letter or just the right quote depending on where exactly on the letter I double click. Safari/Webkit is relatively modern and well-maintained too. Unicode "supported"? Sure. Working well? Nope, just for a few common use cases.


> Tell me, can you copy/paste the "ð–¥¶" character with the mouse after double-clicking it in your browser?

No problem (Linux/Firefox).

The Unicode standard is not static (unlike those old codepages mentioned by OP); it is being changed and improved continuously. Support for characters outside of the BMP (such as the one you mention) is mostly there, but it may not be at the level of the basic scripts supported by, say, Unicode 5.0. That is fine. New features in standards take time to implement (the same thing happens with HTML and CSS).

For developers Unicode support is there. Has been for years.


Your example works fine on Chrome and Internet Explorer on Windows, by the way.


On OS X/Google Chrome, it fails to render the character (all I see is a square), but copy-paste works as expected, and I can view the character correctly after pasting it into Sublime.

On OS X/Safari, it renders fine but copy-paste is bugged like you mention (can't select with double click).


> good luck getting your UTF-8 text output to render correctly

That seems more like a comment on how terminals suck, not Unicode. Everything is painful in the terminal - I mean, good luck making your text red or green too!

> Using UTF-8 typically means having to think long and hard about filtering input/data, normalization

Typically? I really don't think so. I almost never worry about such things. It's a rare occasion when I have to deal with those kinds of things.

Its really a mistake to think that because your program can handle a particular character set that it can therefore handle any language which uses those characters. You're always going to need to add support for specific languages, even when using ASCII, e.g. the sorting order of names is different in German and English. French typographical rules are different w.r.t spacing. Russia. Typesetting tradition formats math rather differently. Line breaking in Thai requires a dictionary because the language has no spaces.

Any software will run into problems eventually, usually with something as simple as German. Decide which languages you're going to support, not which character codes!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: