问题
OutputDebugString()
is native ASCII, which means it convert the input Unicode string to local string before call the ASCII version OutputDebugStringA()
.
Is there any alternative to OutputDebugString()
which supports Unicode?
回答1:
OutputDebugStringW
does internally call OutputDebugStringA
, so Unicode characters that cannot be represented in the system code page will be replaced with ?
.
Oddly enough, the OUTPUT_DEBUG_STRING_INFO structure the debugger receives from the operating system to print the message does appear to support letting the debugger know if the string is Unicode, it just doesn't appear to be used by OutputDebugStringW
at all.
Unfortunately, I don't know of a mechanism to get the OS to raise a OUTPUT_DEBUG_STRING_EVENT with a Unicode string. It may not be possible with public APIs.
来源:https://stackoverflow.com/questions/19442535/is-there-a-unicode-alternative-to-outputdebugstring