https://bugs.winehq.org/show_bug.cgi?id=48151
--- Comment #8 from Ken Thomases ken@codeweavers.com --- The logs show that Wine is interpreting the keys correctly. It translates them to the proper Unicode characters. The only difference in behavior among the logs is the HKL (Windows handle to a keyboard layout) associated with each Mac keyboard layout.
(In reply to Timur from comment #7)
I've created a custom copy of the "Russian - PC" standard keyboard layout using instruction from https://superuser.com/a/665726. Recorded a log using this custom layout to enter the same letters (this also produced '?' in the input field).
Did you save it as a .keylayout file or a bundle? I did a bit of experimenting with Ukelele and, when it saves as a bundle, it includes a key ("TISIntendedLanguage") in the bundle's Info.plist file for the language ("ru"). There doesn't seem to be any indication of language in .keylayout files.
Wine has to generate a keyboard-layout handle (HKL) to report to Windows apps. That HKL is based on the language code ID. It appears that Wine is not able to determine the language of your custom keyboard layouts. That probably leads the app to use an incorrect code table when interpreting the characters generated by the key events.