使用opencv传中文文件崩溃
static char* icvExtractPattern(const char *filename, unsigned *offset)
{
char *name = (char *)filename; if( !filename )
return ; // check whether this is a valid image sequence filename
char *at = strchr(name, '%');
if(at)
{
int dummy;
if(sscanf(at + , "%ud", &dummy) != )
return ;
name = strdup(filename);
}
else // no pattern filename was given - extract the pattern
{
at = name; // ignore directory names
char *slash = strrchr(at, '/');
if (slash) at = slash + ; #ifdef _WIN32
slash = strrchr(at, '\\');
if (slash) at = slash + ;
#endif while (*at && !isdigit(*at)) at++; if(!*at)
return ; sscanf(at, "%u", offset); int size = (int)strlen(filename) + ;
name = (char *)malloc(size);
strncpy(name, filename, at - filename);
name[at - filename] = ; strcat(name, "%0"); int i;
char *extension;
for(i = , extension = at; isdigit(at[i]); i++, extension++)
;
char places[];
sprintf(places, "%dd", i); strcat(name, places);
strcat(name, extension);
} return name;
}
下面是个最小的崩溃场景例子:
#include<ctype.h>
#include<stdio.h> int main(){ char *pPath = "测试视频";
#if defined (_DEBUG)
if(!isdigit(*pPath)){
printf("its not digit\n");
}
#else
if(!iswdigit(*pPath)){
printf("Release its not digit\n");
}
#endif
return ;
}
以下是一个测试:
#include <stdio.h>
#include <Windows.h> int NarrowChar() {
char *pcAlpha = "啊";
printf("pcAlpha = 0x%08X!\n", *pcAlpha); //0xFFFFFFB0
return ;
} int WideChar() {
//wchar_t *pwcAlpha = L"A";
wchar_t *pwcAlpha = L"啊";
printf("pwcAlpha = 0x%08X!\n", *pwcAlpha); //0x0000554A UTF-16-little-endian
//wprintf(L"pwcAlpha = 0x%08X!\n", *pwcAlpha); //0x0000554A
return ;
} int main(void) {
NarrowChar();
WideChar(); return ;
}
由以上可以看出来,字符串这个前缀‘L’实质上是对字符串从ANSI字符集转换为Unicode字符集,也就是UTF-16编码。如果不加这个L前缀就是ANSI/ASCII字符集。
以上的问题我前博文已经研究过了。
################################update#############################
结论:
经过调试测试,其实就是cvCreateFileCapture函数返回失败的原因,在opencv 2.4.9和opencv2.4.10中就有问题,就是都返回失败,而2.4.6就不会
references:
http://www.cppblog.com/luonjtu/archive/2009/03/13/76332.html
http://comments.gmane.org/gmane.comp.lib.opencv.devel/1274
http://msdn.microsoft.com/en-us/library/windows/desktop/ff381407(v=vs.85).aspx
http://blog.csdn.net/xiaobai1593/article/details/7063535
http://stackoverflow.com/questions/8032080/how-to-convert-char-to-wchar-t
使用opencv传中文文件崩溃的更多相关文章
- php上传中文文件文件名乱码问题
php上传文件是最最基础的一个技术点,但是深入进去也有不少问题需要解决,这不,上传中文文件后,文件名变成了乱码. 下面是问题代码,很简单: 1.问题代码 html部分: <html> &l ...
- moodle3.7上传中文文件,无法引用,图片不显示
初始安装moodle3.7 上传图片,名称为中文时,无法引用图片,图片不显示.这里采用修改moodle根目录下的config.php文件, 添加了变量$CFG->slasharguments = ...
- ASP.Net上传中文文件乱码
只要在Head中添加即可解决:<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
- 上传中文文件到linux文件出现乱码问题的解决方案
convm -f gbk -t utf8 -r --notest /ftp的目录 效果:
- ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug
ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug 近日发现eWebEditor V2.8 asp 版本上传文件文件名不能包含中文双引号,发现eWebEditor使用ASP“无惧上 ...
- VFS 上传文件到sftp 报错 包含中文路径 或者中文文件名称
之前用Apache commons-vfs工具进行ftp操作(FTP服务器是 FileZilla Server) 上传本地文件 到 ftp服务器上,如果文件名称 包含 中文 报错 org.apache ...
- wordpress 支持上传中文名称文件
添加文章难免要传个图.文件啥的,可是呢,上传中文名称的文件竟然不行,找了半天,中文乱码,脑残了,竟然忘了这个事,哎 修改其实很简单,只需要两步 1./wp-admin/includes/file.ph ...
- Flask下如何处理Requests 上传中文文件名的问题
一.问题的由来 最近有个项目,叫做文档服务资源中心,类似于七牛,为各个业务系统提供统一的文件资源服务,包括文件的存储.操作管理.下载.预览等.在做文件存储的时候,遇到了这个当指定上传的文件名为 ...
- IE下get传中文乱码的问题完美解决方案
前几天做项目的时候遇到需要在easyui的combobox的url中以get的方式传中文,出现乱码. $('#cc').combobox({ url : 'xxxAction.action?para= ...
随机推荐
- js深入研究之扩展类,克隆对象,混合类(自定义的extend函数,clone函数,与augment函数)
1.类扩展 /* EditInPlaceField类 */ /* 扩展函数 */ function extend(subClass, superClass) { var F = function() ...
- BZOJ1211: [HNOI2004]树的计数
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1245 Solved: 383[Submit][Statu ...
- VS2010之MFC串口通信的编写教程--转
http://wenku.baidu.com/link?url=K1XPdj9Dcf2of_BsbIdbPeeZ452uJqiF-s773uQyMzV2cSaPRIq6RddQQH1zr1opqVBM ...
- 瑞柏匡丞谈中国移动app的国际进阶路
当今3.0互联时代,已然形成了一个移动化,互动化,全球化的完整体系.瑞柏匡丞也在常年与国内外客户的交流沟通中有了自己的些许见解. 国内的移动产业的发展已然非常迅速,但也正是因为各类企业的不断崛起,能够 ...
- poj 2773 利用欧拉函数求互质数
题意:找到与n互质的第 k个数 开始一看n是1e6 敲了个暴力结果tle了,后来发现k达到了 1e8 所以需要用到欧拉函数. 我们设小于n的 ,与n互质的数为 (a1,a2,a3.......a(p ...
- python部落刷题宝学到的内置函数
最近加入了python部落,感觉里面的刷题宝很有意思,玩了一下,知道了许多以前并不清楚的内置函数,然后感觉到快要记不住了,所以开始陈列一下 1.divmod(a,b):取a除以b的商和余数,功效等价于 ...
- shell输出加颜色
shell输出加颜色 #cat a.sh #!/bin/sh blue=`tput setaf 4` reset=`tput sgr0` echo "${blue}[INFORMATION] ...
- C# 酒鬼买酒喝,瓶盖和空瓶子可以换新的酒
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- zoj 3547 The Boss on Mars
需要用到概率论的容斥定理以及计算1 ^ 4 + 2 ^ 4 + ……+ n ^ 4的计算公式1^4+2^4+……+n^4=n(n+1)(2n+1)(3n^2+3n-1)/30 #pragma comm ...
- 自定义seekbar中,thumb被覆盖掉一部分问题