首页 > 解决方案 > 如何在 C 中的 URL 中正确使用“&”?

问题描述

我想在包含一些“&”的 C 程序中调用一个 URL。系统只识别“&”之前的 URL(https://chart.googleapis.com/chart?cht=qr)并告诉我它不知道命令 cht 和 chl。我怎样才能让它使用整个 URL?

char get_qr[100];
sprintf (get_qr, "start https://chart.googleapis.com/chart?cht=qr&chs=500x500&chl=Hello World!);
system (get_qr);

标签: c

解决方案


问题不在于 URL 处理,而在于您通过system.

Shell 命令需要被shell 引用。特别是shell&的特殊字符。所以在你的 shell 命令参数周围加上引号:

system("start \"https://chart.googleapis.com/chart?cht=qr&chs=500x500&chl=Hello World!\"");

(在您的代码中sprintf无论如何都不需要。如果您的实际代码需要sprintf,不要只分配静态缓冲区;分配正确大小的动态缓冲区!)


推荐阅读