There used to be an issue synchronizing with SyncML a whole range of Nokia phones based on the S60 3rd Edition (including such models as E65, N70 or N80). I’m happy to say that after weeks of hunting down the source of the problem, which would prevent the phones from receiving and decoding updates sent from the server, a fix has been found and put into place. But I think this deserves a bit more explanation that the technically inclined might be interested in reading.
To exchange contacts or calendaring data, the SyncML specs requires the use of the well established standards that are vCard and vCalendar. While these standards are somewhat loose, they have the advantage of being widely supported and easy to read and write: they are just a bunch of lines with a key-value association (ie a line with “ORG:ACME Inc.” for the contact’s organization name). These standards require that each line is terminated MS-DOS style, with both a carriage-return and line-feed character to mark each end of line – this is however just an arbitrary choice as a simple line-feed would be enough (this is how lines are terminated on Unix systems).
Problem is, the SyncML specs is also built on XML, which treats spaces, carriage returns, tabs and lines feeds as special “white spaces” and allows XML tools to change them. As such most of these tools consider the carriage-return sign as unimportant, as it is redundant with the line-feed to mark the end of a line.
So what happens when you put a format that requires carriage-return such as vCard inside another format that doesn’t preserve them? Lots of hair pulling, because most XML programming tools will merrily remove any carriage returns they happen to find. Thankfully almost every SyncML application out there doesn’t mind reading vCard or vCalendar data with the wrong line ending as this is trivial to do and doesn’t any difference to the data. But a few will not.

I just found out another strange issue with Nokia S60 v3 phones:
1. I created a contact with a very long given name(in Chinese) but without surname.
2. Start a synchronization and on the web interface of PicoBeat, I saw the “File as” of the newly added contact was displayed as: 某个很长很长的名字=TEL;CELL:*
I guess maybe there is something wrong with vcard encoding of Nokia S60 v3 phones or vcard decoding of PicoBeat server.
Comment by dh — January 13, 2010 @ 5:47 am
Thanks, apparently this is a bug in the picoBeat vCard decoder combined with an odd vCard encoding on the phone (which adds extra blank lines where it shouldn’t). The issue is now fixed
Comment by Pierre — January 13, 2010 @ 6:58 am