DDH Software, Inc Making a big world smaller






Return to Knowledgebase Home
Question: Does HanDBase for iPhone support Unicode?
Product: HanDBase for iPhoneArticle Number: 341Creation Date: 10/31/2008
Answer:
For those who don't know, here's a brief description of Unicode- prior to Unicode, most text occupies one byte of memory space. This left room for 256 combinations of characters. This is enough for A-Z, a-z, 0-9, some punctuation and there is another 127 combinations left. The other space was used for non-english accented characters or other language character sets and the typical application used a font that would support each language by using those other character sets. In Windows there is a standard character set called Windows Latin1 which covers most of North America, South America, and Europe. And many other countries have over the years adapted a romanized version of their language that uses such characters only.

Eventually Unicode started gaining popularity. Unicode offers 65535 combinations of characters, enough to cover just about every language known. But to do this, it requires two bytes of storage per letter. This means if a database has room for 10 characters prior to Unicode, it now has room for just 5 characters of text, since each takes up twice as much space. The HanDBase PDB format used originated on Palm where unicode was not supported. While we could make HanDBase work with unicode, the inherent difficulty we have is that the format is fixed in terms of space for each piece of information- eg, database name stores up to 19 characters. We felt that forcing everyone down to 9 characters (19/2 effectively) would not fly with our large existing userbase. And our cross platform compatibility is a key feature of our platform, so we need to have the format consistent everywhere.

Thus to offer Unicode support, we need to change the database structure of our program, not just iPhone, but for every HanDBase product we offer- Palm OS, Windows Mobile, BlackBerry, S60, UIQ, Windows Desktop, Mac OS. As you can imagine this is no small change, and is something we save for major version updates.

There is another format, called UTF8 encoding, which is basically unicode but done in such a way that normal roman/latin characters only take up one byte. This is a great solution as this means we could add support for Unicode without losing the space in the database for those who don't need the extra characters. We considered and researched this option heavily and elected not to use it in a small update but are looking at rolling this into a future update as it will take a lot of time and testing to correctly implement.

So the short answer is that the reviewers are right, there is no unicode support, and the reason is that the database format we currently use does not support it. But we are working to add support for Unicode in a future version of HanDBase across the board on our products.


This article has been viewed 1086 times.

Return to Knowledgebase Home