In my use I have found this to be true:
If you set the keyboard layout on the client Mac (the viewer) to US (Preferences -> International -> Inputmenu and select US, then switch keyboard in the menubar), then the physical keyboard on the client Mac will behave as the keyboard selected in the InputMenu of the vnc-server (remote) Mac.
Example: I (the viewer) connect to a vnc-server Mac (the remote Mac) that has Norwegian keyboard selected in the Input Menu. To make my local keyboard behave like a Norwegian keyboard on the remote Mac I simply switch to US in the Input Menu of my Mac.
When connecting from a Mac VNC client to a Windows vnc-server, I have found that my keyboard behaves like the keyboard I have selected in my InputMenu.
That is if I have Norwegian keyboard selected on my Mac, then all keys on my keyboard replicates the correct characters on the Windows vnc-server, regardless of what keyboard layout is selected on the Windows PC.
This difference as I have learned has to do with a fundamental difference between how this is handled in Windows vs MacOSX.
When controlling a vnc-server Mac with a non-US keyboard layout from a Windows client, the same thing applies as when connecting between two Macs. If you set your Windows PC to US keyboard, the physical keyboard on the Windows PC will act as the selected keyboard layout chosen on the remote Mac.
Copy-Paste of foreign characters is an inconsistent matter. I have found that when running VineViewer towards VineServer, it just works. When running CotVNC towards VineServer, it doesn?t.
When running either Vine or CotVNC towards RealVNC on a Windows PC, I have not made it work. But if I run TridiaVNC on the Windows PC, it works.