QApplication在unicode中

时间:2010-11-01 18:45:36

标签: c++ qt unicode

QApplication的构造函数使用(int argc,char ** argv)来处理任何特定于Qt的命令行参数。

如果我的应用是unicode怎么办?我有一个wchar_t ** argv?

创建所有命令行args的char *副本以传递给本身是unicode的库似乎有点愚蠢。

2 个答案:

答案 0 :(得分:8)

是的,会的。如果不是this note

  

警告:在Unix上,此列表已构建   来自argc和argv参数   传递给了构造函数   主功能。字符串数据   argv使用解释   :: QString的fromLocal8Bit();因此它是   例如,不可能通过   关于a的日文命令行参数   在Latin1语言环境中运行的系统。   大多数现代Unix系统都没有   这种限制,因为它们   基于Unicode。

     

在基于NT的Windows上,这个限制   也不适用。在Windows上,   arguments()不是从   argv / argc的内容,作为内容   不支持Unicode。相反,   arguments()是从。构造的   GetCommandLine()的返回值。作为一个   结果,由...给出的字符串   arguments()。at(0)可能不是   Windows上的程序名称,具体取决于   应用程序是如何启动的。

不可否认,我没有这个词

答案 1 :(得分:0)

好吧,main将始终获得char** argv,这就是QApplication所期望的。如果要使用命令参数执行其他操作,还可以将它们(使用locale / encoding?)转换为宽字符串。