是否可以使用 Unicode“argv”?

2024-04-30

我正在为使用文件作为参数的应用程序编写一个小包装器。

包装器需要采用 Unicode,因此我使用 wchar_t 来表示我拥有的字符和字符串。现在我发现自己遇到了问题,我需要将程序的参数放在 wchar_t 数组和 wchar_t 字符串中。

是否可以?我正在定义main充当

int main(int argc, char *argv[])

我应该使用 wchar_t 吗argv?

非常感谢,我似乎没有找到有关如何在 C 中正确使用 Unicode 的有用信息。


一般来说,没有。这取决于操作系统,但 C 标准规定“main()”的参数必须是“main(int argc, char **argv)”或等效形式,因此除非 char 和 wchar_t 是相同的基本类型,你做不到。

话虽如此,您可以将 UTF-8 参数字符串输入程序,将它们转换为 UTF-16 或 UTF-32,然后继续生活。

在 Mac(10.5.8,Leopard)上,我得到:

Osiris JL: echo "ï€" | odx
0x0000: C3 AF E2 82 AC 0A                                 ......
0x0006:
Osiris JL: 

这都是UTF-8编码的。 (odx 是一个十六进制转储程序)。

也可以看看:为什么与UNIX/Linux环境交互时使用UTF-8编码 https://stackoverflow.com/questions/164430/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用 Unicode“argv”? 的相关文章

随机推荐