c - C: 如何将 %20 转换为空格?
问题描述
我在为 GNU Coreutils 程序编写图形前端时遇到了这个shred
程序。当用户拖入包含空格的文件时,例如my private data.docx
GTK+ DND 服务将这些空格表示为%20
. 使用那个例子我会得到(对于文件名)my%20private&20data.docx
。我需要将它们转换为空格字符,因为我fopen
使用stdio.h
. fopen
拒绝打开这样的文件名,因为它不能识别%20
为空间的表示。
解决方案
不,您不能%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);
最简单的。
推荐阅读
- python - 如何在硒(python)的chrome网页上缩小嵌入式谷歌地图
- clion - 将 CLion 与柯南测试集成
- tensorflow - 是否有任何解决方法可以在 TPU 上使用多个“正确”指标进行 keras 学习?
- derby - derby db升级文件权限问题
- c++ - Iceberg 类和 Google 单元测试
- python - 数组输出sql数据库中行数相同的结果集
- json - 如何根据特定变量从嵌套JSON中获取特定变量值
- f# - 活动模式的要点是什么?
- javascript - 如何正确返回 AJAX 数据
- ruby-on-rails - 创建一个可以从另一个类初始化新对象的方法