开发者社区> 问答> 正文

windows版本oss c sdk如何上传和下载包含中文名的文件

        为了方便大家在windows中使用oss c sdk,官网上发布的windows版本oss c sdk包含了VS2010的工程项目,用户可以直接打开工程项目进行开发。用户开发时只需要把oss_c_sdk_lib工程生成的lib包含到自己的工程项目中就可以。最近用户问得比较多的一个问题如何使用oss c sdk处理在上传和下载过程时包含中文名的文件,可能很多用户都遇到过这个问题,这里分享一个处理的方法。
       由于windows环境下VS默认的编码方式不是utf8,这点大家在使用oss c sdk上传或者下载包含中文名的文件时可能已经发现了,会出现openFileFail。明明文件存在,但就是打不开,换成英文名就可以了。一个简单的解决方法是在包含中文的代码中,加入下面两行代码:
#pragma once
#pragma execution_character_set("utf-8")


      然后在File -> Advanced Save Options里面选择Unicode(UTF-8 without signature)选项,然后运行build,再次运行程序应该就会发现能够正常上传和下载文件了。希望上述方法能够对您有所帮助。

展开
收起
yjseu 2015-11-20 17:14:30 17109 0
10 条回答
写回答
取消 提交回答
  • 回 16楼(fisher_001) 的帖子
    这种情况下最好抓个包,看看请求返回的是什么。
    2018-04-10 13:16:18
    赞同 展开评论 打赏
  • Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    请问楼主,windows下分片上传(断点续传),有没有遇到这样的情况?
    报错:Xml format invalid, root node name is not Error
    2018-04-09 15:15:09
    赞同 展开评论 打赏
  • Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    我发现c-sdk 的第三方库 需要依赖 vs2008的开发包  是否可以更新下 依赖库和c库 都使用vs2012  vs2013给出相应的版本编译的
    例如:  c-sdk-2012包   第三方库和csdk都是依赖vs2012的
                  c-sdk-2013包   第三方库和csdk都是依赖vs2013的  以此类推

    -------------------------

    Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    引用第14楼牛牛2050于2018-01-10 16:02发表的 Rewindows版本oss c sdk如何上传和下载包含中文名的文件 :
    我发现c-sdk 的第三方库 需要依赖 vs2008的开发包  是否可以更新下 依赖库和c库 都使用vs2012  vs2013给出相应的版本编译的
    例如:  c-sdk-2012包   第三方库和csdk都是依赖vs2012的
                  c-sdk-2013包   第三方库和csdk都是依赖vs2013的  以此类推
    ----------------------------------------------------------------------------------------------------------
    希望开源的项目可以改进
    2018-01-10 16:02:40
    赞同 展开评论 打赏
  • Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    我也遇到同样问题,我按照上述描述设置了,但依然出现openFileFail
    2017-08-14 14:50:35
    赞同 展开评论 打赏
  • Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    1、下载文件时,想把他下载到指定的目录,在哪里指定目录,我用的是test_get_object_to_file
    2、上传时,有没有断点续传的函数,有时上传的文件比较大,很容易出现上传不成功现象
    2017-03-04 10:46:49
    赞同 展开评论 打赏
  • 回 3楼无衣蒹葭的帖子
    我也是遇到了2楼说的问题。。已经是下载的最新版的SDK了  
    configx文件修改如下

    工程属性也已经修改

    在release模式下运行出现下面情况

    麻烦帮忙看看 哪里设置不对  谢谢

    -------------------------

    回 楼主yjseu的帖子
    麻烦帮我看下遇到的问题  谢谢

    -------------------------

    回 10楼无衣蒹葭的帖子
    x谢谢解答。。原来犯了这么低级错误。。
    不过改过来运行又提示计算机丢失LIBAPR-1.DLL  可是下载的工程实例明明有这个DLL啊
    2016-04-15 17:49:23
    赞同 展开评论 打赏
  • Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    oss上传含中文名的文件失败,已经按照楼主的说的处理了,但是仍然出现open file fail。

    -------------------------

    Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    oss上传含中文名的文件失败,已经按照楼主的说的处理了,但是仍然出现open file fail。

    请楼主帮忙看看这个问题,谢谢

    -------------------------

    Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    谢谢无衣蒹葭!!转utf-8后问题已解决!
    2016-03-15 11:03:40
    赞同 展开评论 打赏
  • 回 2楼benben23的帖子
    应该是项目中找不到libaprutil-1.dll。你到sample目录下面去看看,如果没有,可以下载最新版的sdk 包看看。里面应该有。

    -------------------------

    回 5楼manqian的帖子
    这个是因为Visual Studio导致的,目前没有一种特定的办法,你可以试试下列的方式:

    可以参考这里的方法:http://stackoverflow.com/questions/688760/how-to-create-a-utf-8-string-literal-in-visual-c-2008。

    另外,也可以将汉字字符串先转成utf-8的字符串,然后使用utf-8字符串试试看。

    -------------------------

    回 8楼(小小1025) 的帖子
    配置里面的值前后不要包括< 和 >就可以了。
    比如char* TEST_OSS_ENDPOINT = "oss-cn-hangzhou.aliyuncs.com";。
    2016-01-04 09:54:58
    赞同 展开评论 打赏
  • Rewindows版本oss c sdk如何上传和下载包含中文名的文件
    用vs2012编译sample工程,老是提示“无法启动程序,计算机中丢失libaprutil-1.dll”。是vs2012不能编译项目吗?
    2015-12-21 09:49:09
    赞同 展开评论 打赏
  • 回 楼主(yjseu) 的帖子
    另外,请大家注意,自己新建工程引用oss c sdk库的时候,确认项目包含apr/apr-util、libxml2、libcurl这些第三方库的头文件和lib库以及dll库,如果缺少第三方库的头文件或者lib库,在编译的时候会出错,提示找不到相应的库,如果在生成的exe文件所在目录中没有dll库,运行的时候会提示缺少dll库。通常情况下,这些第三方库可以在oss c sdk提供的sample工程中找到。欢迎大家对oss c sdk的windows版本提出宝贵的建议。
    2015-11-23 23:48:05
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载