C: 如何将 %20 转换为空格?
C: How do I convert %20 to spaces?
我 运行 在编写 GNU Coreutils shred
程序的图形前端时跨越了这个程序。当用户拖入其中包含 space 的文件时,例如 my private data.docx
,GTK+ DND 服务将这些 space 表示为 %20
。使用那个例子我会得到(文件名)my%20private&20data.docx
。我需要将它们转换为 space 个字符,因为我使用 stdio.h
中的 fopen
函数。 fopen
拒绝打开这样的文件名,因为它无法将 %20
识别为 space.
的表示
不,您没有用空格替换 %20
。您将 URL 解码为文件名,使用
g_filename_from_uri
:
gchar *
g_filename_from_uri (const gchar *uri,
gchar **hostname,
GError **error);
因此用法
gchar *filename = g_filename_from_uri(uri, NULL, NULL);
最简单的。
我 运行 在编写 GNU Coreutils shred
程序的图形前端时跨越了这个程序。当用户拖入其中包含 space 的文件时,例如 my private data.docx
,GTK+ DND 服务将这些 space 表示为 %20
。使用那个例子我会得到(文件名)my%20private&20data.docx
。我需要将它们转换为 space 个字符,因为我使用 stdio.h
中的 fopen
函数。 fopen
拒绝打开这样的文件名,因为它无法将 %20
识别为 space.
不,您没有用空格替换 %20
。您将 URL 解码为文件名,使用
g_filename_from_uri
:
gchar *
g_filename_from_uri (const gchar *uri,
gchar **hostname,
GError **error);
因此用法
gchar *filename = g_filename_from_uri(uri, NULL, NULL);
最简单的。