It's certainly better than nothing. The system now cannot direct the user to the wrong location if they input the wrong, similar, characters. But it does not make the user feel confident that the input was correct.
This only works if you know 2 is a possible character, but Z is not, and etc. Otherwise an average user still isn't sure whether '0' means zero, or the letter O. But at least the system will refuse the incorrect version.
You could make it a little more user friendly if you replace all the non-existent characters with their similar partner before interpreting ('Z' becomes '2'), but then it still is not clear to the user if the code they entered should have been 'ABC123' or 'ABC1Z3'. Even though they are identical to the system, the user cannot know this (always assume the user will not read your FAQ).