@@ -40,11 +40,12 @@ if ((ret_c = malloc((length * 3) + 1)) == NULL) @throw [OFOutOfMemoryException newWithClass: isa andSize: (length * 3) + 1]; for (i = 0; *s != '\0'; s++) { - if (isalnum(*s) || *s == '-' || *s == '_' || *s == '.') + if (isalnum(*s) || *s == '-' || *s == '_' || *s == '.' || + *s == '~') ret_c[i++] = *s; else { char buf[3]; snprintf(buf, 3, "%02X", *s); ret_c[i++] = '%';