【发布时间】:2015-11-14 23:22:47
【问题描述】:
大部分 WinAPI 调用都有Unicode 和ANSI 函数调用
例如:
function MessageBoxA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT): Integer; stdcall;external user32;
function MessageBoxW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall; external user32;
什么时候应该使用 ANSI 函数而不是调用 Unicode 函数?
【问题讨论】:
-
这有点夸张。如果您正在处理以 ASCII 编码的窄字符串 - 例如,因为您已从网络套接字或纯文本文件中读取它 - 手动将其转换为 UTF-16 是没有意义的,这样您就可以调用 MessageBoxW 而不是消息框A。 (当然你必须知道你使用的是什么编码。如果窄字符串实际上是 UTF-8,那么你确实应该将它转换为 UTF-16 并调用 MessageBoxW。)
标签: windows function winapi unicode ansi