c - 我应该从 Windows 代码中删除 TCHAR 吗?

标签 c winapi unicode utf-8 tchar

我正在修改一些非常古老(10 年)的 C 代码。代码在 Unix/Mac 上用 GCC 编译,在 Windows 上用 MinGW 交叉编译。目前全是 TCHAR 字符串。我想摆脱 TCHAR 并改用 C++ 字符串。是否仍然需要使用 Windows 范围的函数,或者我现在可以使用 Unicode 和 UTF-8 做所有事情吗?

最佳答案

Windows 仍然使用 UTF16,而且很可能永远都会使用。因此,您需要使用 wstring 而不是 string。 Windows API 不直接提供对 UTF8 的支持,主要是因为 Windows 在发明 UTF8 之前就支持 Unicode。

因此,编写将在 Windows 和 Unix 平台上编译的 Unicode 代码是相当痛苦的。

关于c - 我应该从 Windows 代码中删除 TCHAR 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315566/

相关文章:

最终赋值的 C 循环优化帮助(禁用编译器优化)

c - malloc 时出现段错误

ruby - 在 Win32 上,如何使用 Perl、Python 或 Ruby(或 C)检测是否按下了 Left Shift 或 Right ALT?

c - 为什么 FindWindowEx 找不到 IP 地址窗口?

c++ - Unicode 字符串文字

c - Makefile 只执行一次命令

使用多个线程并发写入文件

windows - gdi对象保存在哪里?

mysql - 解密 MySQL 编码

c - 在C中打印UTF-8多字节字符