Ich würde das Passwort an deiner Stelle mit Base16, Base32 oder Base64 kodieren und dekodieren.
Damit sind alle Probleme mit Zeichensatzumwandlungen durch Datenbanken umgangen.
Ein weiterer Vorteil ist, dass du dann im Passwort alle Zeichen von 0 bis 255 benützen darfst.
Funktionen zur Base16-Kodierung (was nix anderes ist als der gute alte Hexcode) findest du
hier.