社区
Android
帖子详情
请教Android上在C语言中创建、打开中文目录/文件的问题
Hankel
2011-06-19 09:27:45
请教大侠:
我在Android上开发的应用中带一个C实现的so,需要访问sd卡,并且在上面创建中文目录;现在遇到问题;
目录名称是从网络获取下来的,中文,UTF8编码,比如叫dirname,我直接使用
mkdir(dirname, 0777)创建目录,也没报错,但是在sd卡上看该目录并没有创建成功;
请问在C语言中要创建中文目录,对编码有什么要求么?
新人分不,请大家帮忙解答,感谢!
...全文
331
7
打赏
收藏
请教Android上在C语言中创建、打开中文目录/文件的问题
请教大侠: 我在Android上开发的应用中带一个C实现的so,需要访问sd卡,并且在上面创建中文目录;现在遇到问题; 目录名称是从网络获取下来的,中文,UTF8编码,比如叫dirname,我直接使用 mkdir(dirname, 0777)创建目录,也没报错,但是在sd卡上看该目录并没有创建成功; 请问在C语言中要创建中文目录,对编码有什么要求么? 新人分不,请大家帮忙解答,感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
念茜
2011-06-20
打赏
举报
回复
java 的string 不管是英文字符还是中文字符都是2字节存储
jni和c就不一样了
char (1)和wchar(2)
你试试创建中文目录名为一个中文,扩充一下存储单元为之前的2倍,如果1个字没有错,那就是这个问题了
Hankel
2011-06-19
打赏
举报
回复
没有哪位能再给点建议么?
Hankel
2011-06-19
打赏
举报
回复
再对该问题补充一下:
应用分了两个部分,JAVA和C库,中间由JNI转调;
创建目录时,由JAVA传一个工作目录给C库,然后C库把从网络获取的子目录拼接上去再创建,
比如java创建的工作目录:/sdcard/test/中文测试/
C库从网络获取到的目录:中文再测试
那么C库就会使用mkdir创建/sdcard/test/中文测试/中文再测试/ 这个目录;
从现象上看JAVA创建的中文工作目录成功,C库创建的子目录失败,但是mkdir并没有报错;
Hankel
2011-06-19
打赏
举报
回复
[Quote=引用 3 楼 lizhengjun2010 的回复:]
那可能是编码问题哈!!android编码为utf-8,网上读取的可能是gb2312
转换:
byte[] data;//数据为gb2312
String strGB=new String(data,"gb2312");
String strUTF=new String(str.getBytes(),"utf-8");
楼主看看是不是这种情况!
[/Quote]
感谢提醒;
文件目录是由c库直接从网络获取下来的,获取到的就是utf8编码的,这个我确认过;
我困惑的是mkdir调用没有报错,但是目录并没有创建成功;
按道理如果有权限或者编码问题,该调用应该报错才对。
lizhengjun2010
2011-06-19
打赏
举报
回复
那可能是编码问题哈!!android编码为utf-8,网上读取的可能是gb2312
转换:
byte[] data;//数据为gb2312
String strGB=new String(data,"gb2312");
String strUTF=new String(str.getBytes(),"utf-8");
楼主看看是不是这种情况!
Hankel
2011-06-19
打赏
举报
回复
[Quote=引用 1 楼 lizhengjun2010 的回复:]
sdcard加写权限没啊!
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
[/Quote]
感谢提醒,sd卡的权限是有的,创建英文目录,创建文件都没有问题。
lizhengjun2010
2011-06-19
打赏
举报
回复
sdcard加写权限没啊!
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Android
SQLIte 介绍 及 导入db
文件
到app的/data
目录
时手机需要root
一、关系型数据库SQLIte 每个应用程序都要使用数据,
Android
应用程序也不例外,
Android
使用开源的、与操作系统无关的SQL数据库—SQLite。SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了。SQLite已经被多种软件和产品使用,Mozilla FireFox就是使用SQLite
在Ubuntu上为
Android
系统编写Linux内核驱动程序(学习老罗的)
首先提出2个
问题
1. 驱动程序的作用是什么? 答:驱动程序的作用主要是向上层提供访问设备寄存器的一个接口,包括读和写。 2. 访问设备驱动程序的方法? 答:a. 通过proc
文件
系统来访问;b. 通过传统的设备
文件
的方法来访问;c. 通过devfs
文件
系统来访问。 他定义的hello.h在最新goldfish路径应该为:~/
Android
_4.2.2_SourceCode/kerne
在Ubuntu上为
Android
系统内置C可执行程序测试Linux内核驱动程序 (学习老罗的)
不得不说,老罗写的太好了。 按照他的方法,我两次就成功了。 不过有点让人奇怪的地方就是 第一次我make snod是成功的 但是执行如下代码: root@
android
:/ # cd system/bin root@
android
:/system/bin # ./hello 的时候,确发生了错误。 第一次可能是因为我没有 执行$ source ./
H264解码器源码(
Android
1.6 版)
H264解码器源码,移植ffmpeg
中
的H264解码部分到
Android
,深度删减优化,在模拟器(320x480)
中
验证通过。 程序的采用jni架构。界面部分,
文件
读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。 在这个版本
中
,从H264码流
中
分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。
FFmpeg的
Android
平台移植—编译篇
http://blog.csdn.net/gobitan/article/details/22750719 版权声明:本文为博主原创文章,未经博主允许不得转载。 FFmpeg的
Android
平台移植—编译篇 Dennis Hu 2014年3月28日 摘要:本文主要介绍将FFmpeg音视频编解码库移植到
android
平台上的编译和基本测试过程。 环境准备
Android
80,350
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章