Given the OPs location and comments, it is possibly related to the use of non-Latin characters (ie. Chinese) in the passphrase... and the way that the system is parsing it... TBH, I'm not surprised it might be something as simple as using ' instead of "...
I've had a bugger of a time with Bitcoin Core parsing JSON because of similar ' vs " issues

It's probably bigger than that. I don't think bitcoin core's console parses other character sets outside of ASCII (
maybe it parses UTF-8 input but I haven't verified this on GitHub yet, will do so later), so so if you Enter a password in one character set, and China does have its own localized character set that Windows possibly uses by default, then when you type the password again but using a different character set, I suspect they're not going to be compared by character, they're going to be compared byte-for-byte, which will always fail the password check.
It would be a useful endeavor indeed to make a patch that detects the character set used in the input and translates it into its equivalent UTF-8 character internally. UTF-8 spans practically all the character sets that Windows bundles so character comparison becomes easier.
This is less of an issue on Unix-based systems since those use UTF-8 as the system default character set.