Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why use Unicode if your program is English only?

Tags:

unicode

So I've read Joel's article, and looked through SO, and it seems the only reason to switch from ASCII to Unicode is for internationalization. The company I work for, as a policy, will only release software in English, even though we have customers throughout the world. Since all of our customers are scientists, they have functional enough English to use our software as a non-native speaker. Or so the logic goes. Because of this policy, there is no pressing need to switch to Unicode to support other languages.

However, I'm starting a new project and wanted to use Unicode (because that is what a responsible programmer is supposed to do, right?). In order to do so, we would have to start converting all of the libraries we've written into Unicode. This is no small task.

If internationalization of the programs themselves is not considered a valid reason, how would one justify all the time spent recoding libraries and programs to make the switch to Unicode?

like image 271
bsruth Avatar asked Jun 15 '09 18:06

bsruth


2 Answers

They say they will always put it in English now, but you admit you have worldwide clients. A client comes in and says internationalization is a deal breaker, will they really turn them down?

To clarify the point I'm trying to make you say that they will not accept this reasoning, but it is sound.

Always better to be safe than sorry, IMO.

like image 34
Zach Avatar answered Oct 17 '22 05:10

Zach


This obviously depends on what your app actually does, but just because you only have an english version in no way means that internationalization is not an issue.

What if I want to store a customer name which uses non-english characters? Or the name of a place in another country?

As an added bonus (since you say you're targeting scientists) is that all sorts of scientific symbols and notiations are supported as part of Unicode.

Ultimately, I find it much easier to be consistent. Unicode behaves the same no matter whose computer you run the app on. Non-unicode means that you use some locale-dependant character set or codepage by default, and so text that looks fine on your computer may be full of garbage characters on someone else's.

Apart from that, you probably don't need to translate all your libraries to Unicode in one go. Write wrappers as needed to convert between Unicode and whichever encoding you use otherwise.

If you use UTF-8 for your Unicode text, you even get the ability to read plain ASCII strings, which should save you some conversion headaches.

like image 117
jalf Avatar answered Oct 17 '22 04:10

jalf