我在编写GNU Coreutils shred程序的图形化前端时遇到了这个程序。当用户拖入包含空格的文件时,例如my private data.docx,GTK+免打扰服务将这些空格表示为%20。使用该示例,我将获得(对于文件名) my%20private&20data.docx。我需要将这些字符转换为空格字符,因为我使用了stdio.h中的fopen函数。fopen拒绝这样打开文件名,因为它不会将%20识别为空格的表示形式。
发布于 2021-04-25 13:59:23
不,您不能用空格替换%20。您可以使用g_filename_from_uri将URL解码为文件名。
gchar *
g_filename_from_uri (const gchar *uri,
gchar **hostname,
GError **error);和用法因此
gchar *filename = g_filename_from_uri(uri, NULL, NULL);以最简单的方式。
https://stackoverflow.com/questions/67249621
复制相似问题