Bueno, una opcion seria "escapar" esos caracteres con addslashes() (
www.php.net/addslashes) para guardarlo y "desescaparolo" con stripslashes() (
www.php.net/stripslashes). Al escapar pone un \ delante, es un caracter especial. Al menos asi es en MySQL, no se si es un estandard SQL o si lo soporta tu BD.
Otra opcion puede ser guardarla codificado en base64, que creo que no utiliza esos caracteres. Seria usar las funciones base64_encode() (
www.php.net/base64_encode) y base64_encode() (
www.php.net/base64_encode). Ojo, el tamaño del fichero puede llegar a triplicarse. Esta es la forma en que se envian los ficheros binarios adjuntos a los emails.
Suerte.