我正在为使用文件作为参数的应用程序编写一个小包装器。
包装器需要采用 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(使用前将#替换为@)