5 guest@cc 1969-12-31T17:00:00
I once had a few files with Japanese characters in them on an OS X system, and a .torrent file that I used to download them. I wanted to transfer them to a FreeBSD system using ZFS so I could seed them. I transferred them, along with the .torrent file, but even though the files were clearly there, my torrent client complained that it couldn't find them. I tried to figure it out for days and days - the path described in the .torrent file was obviously the same path to where the files were stored on the filesystem, all of the hashes checked out, they visually looked the same. I couldn't figure it out until I put both paths (the one on OS X where it worked and the one on FreeBSD) through hexdump, and saw that even though they looked completely identical, they were represented by a different sequence of bytes. After a bit more research I found out that the cause of this was HFS+ and ZFS having different normalization algorithms, and that the solution to this was to make a ZFS volume that didn't do any Unicode normalization, where everything then worked fine. I don't like Unicode much.