В аналогичной ситуации я закодировал байты ключа в шестнадцатеричном формате (где, в вашем случае, ключ является хешем URL). Это удваивает размер, но является простым, позволяет избежать любых возможных проблем в файловой системе, искажающих символы, и сортирует в том же порядке, что и исходный ключ.
(Первоначально я попробовал немного более изощренное и более эффективное кодирование, которое, как мне казалось, избежало проблемных символов, но файловая система OS X оказалась более безумной, чем я предполагал.)