主页C++ Builder 资料C++ Builder 操作指南项目的常用的重要配置选择 UNICODE / ANSI
C++ Builder 串口控件
C++ Builder 编程技巧
C++ Builder 操作指南
IDE外观和窗口布局方案
欢迎页面
创建和管理项目
创建和管理项目组
编译、运行和调试程序
项目的常用的重要配置
 • 项目的配置
 • 选择 UNICODE / ANSI
 • 头文件和库文件的路径
 • 生成独立运行的 exe
 • 选择C/C++编译器
 • 选择资源编译器
窗口画面编辑
有多个窗口的程序
程序的显示主题/切换皮肤
编辑程序代码
安装第三方控件/组件包
快捷键大全
IDE或编译器出错处理
C++ Builder 参考手册
网友留言/技术支持
选择 UNICODE / ANSI - 项目的常用的重要配置
 • 如何选择 UNICODE 或 ANSI
 • 图形界面为什么要选择 UNICODE 版本
 • 控制台程序选择 UNICODE 还是 ANSI

如何选择 UNICODE 或 ANSI

项目配置里面,左面选择 C++ (Shared Options)
如果需要修改,这个选项建议在这个项目的所有配置上修改,所以右面的上面位置,选择 All configuration – All platforms

_TCHAR maps to:选择 wchar_t 为 UNICODE 版本,选择 char 为 ANSI 版本。

 

图形界面为什么要选择 UNICODE 版本

在图形界面,建议选择 wchar_t,即 UNICODE 版本,在 C++ Builder 10 这个版本,图形界面默认的,会选择 wchar_t,早期版本有默认为 char 即 ANSI 版本的。
这里的切换 UNICODE 版本和 ANSI 版本,影响内容包括:
 • 程序的入口函数,即 _tWinMain对应于 wWinMain 还是 WinMain
 • 所有的 API 函数,会选择 UNICODE 版本还是 ANSI 版本

选择 UNICODE 的理由:
 • 从 C++ Builder 2009 开始,图形界面,包括 VCL 和 Firemonkey 项目,所有窗口或控件的文字相关的属性,都是 UnicodeString 类型的,即使是选择了 ANSI 版本,这些属性也是 UnicodeString 类型的,这样会在 ANSI 版本上,控件属性和 API 函数不对应,需要在程序里面来回转编码,非常麻烦。
 • 从 Windows 2000 开始,操作系统的内核的编码都是 UNICODE 了,保留了ANSI 版本,是为了兼容更老的程序,ANSI 版本程序运行时,会实时的进行编码转换到 UNICODE 上运行,编码的转换可以到控制面板的区域和语言里面,在“非UNICODE程序使用的编码”选项,就是 ANSI 版本的程序,按照什么语言去转换编码的。Windows 2000 开始,操作系统的控制面板里面都有这个选项。
 • UNICODE是新的编码,这样的程序会是国际化的,在任何语言的操作系统上运行都不会乱码,就算是不编国际化程序,也会让代码看起来很时尚,与时俱进。

 

控制台程序选择 UNICODE 还是 ANSI

 • 选择 UNICODE的理由:文件处理,和其他程序之间的交互和通讯处理等,UNICODE已经是大势所趋了,比如 xml 文件,网页文件,网络通讯,数据库,都是 UNICODE了。
 • 选择 ANSI 的理由:由于目前的 Windows 控制台,标准输入输出都不支持 UNICODE,虽然 C/C++ 的 stdio.h 或 iostream 提供的函数都有 UNICODE 版本的,但是在控制台输出的时候,都是转成 ANSI 输出的,不支持本地之外的其他语言,不支持国际化。UNICODE 版本的控制台程序输出汉字都需要设定转为 ANSI 时要转成的编码类型,否则会乱码。

结论:如果正式发行软件,控制台程序仍然建议选择 UNICODE 版本,因为程序不仅仅是显示输出,其他的地方都需要 UNICODE,习惯了就好了。

◤上一页:项目的配置下一页:头文件和库文件的路径

C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号