Issue 22837: getpass returns garbage when typing tilde on Windows with deadkeys (original) (raw)

When using getpass.getpass() on Windows and typing a tilde () with a layout with dead keys (e.g. Swiss German), one would typically type " " to get a single tilde.

However, this returns '\x00\x83~' with getpass. It seems this is what msvcrt.getch() returns.

Microsofts documentation at http://msdn.microsoft.com/en-us/library/aa297934(v=vs.60).aspx only says "When reading a function key or an arrow key, _getch and _getche must be called twice; the first call returns 0 or 0xE0, and the second call returns the actual key code." which doesn't really apply to this.

It seems to work fine with other dead keys like ` or ^.

Unless someone knows more about what's happening here I'd suggest replacing '\x00\x83' by '' in getpass.