社区
Android
帖子详情
请教Android上在C语言中创建、打开中文目录/文件的问题
Hankel
2011-06-19 09:27:45
请教大侠:
我在Android上开发的应用中带一个C实现的so,需要访问sd卡,并且在上面创建中文目录;现在遇到问题;
目录名称是从网络获取下来的,中文,UTF8编码,比如叫dirname,我直接使用
mkdir(dirname, 0777)创建目录,也没报错,但是在sd卡上看该目录并没有创建成功;
请问在C语言中要创建中文目录,对编码有什么要求么?
新人分不,请大家帮忙解答,感谢!
...全文
333
7
打赏
收藏
请教Android上在C语言中创建、打开中文目录/文件的问题
请教大侠: 我在Android上开发的应用中带一个C实现的so,需要访问sd卡,并且在上面创建中文目录;现在遇到问题; 目录名称是从网络获取下来的,中文,UTF8编码,比如叫dirname,我直接使用 mkdir(dirname, 0777)创建目录,也没报错,但是在sd卡上看该目录并没有创建成功; 请问在C语言中要创建中文目录,对编码有什么要求么? 新人分不,请大家帮忙解答,感谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
8
c语言
基础
文件
1该函数的功能就是
打开
一个
文件
,函数的第一个参数是你要
打开
的
文件
的
文件
名,第二个参数是
打开
这个
文件
的形式。我们知道
打开
一个
文件
时,系统会为该
文件
创建
一个
文件
信息区,该函数调用完毕后,如果
打开
该
文件
成功,那么返回指向该
文件
信息区的指针(FILE*类型);如果
打开
文件
失败,那么返回一个空指针(NULL)。在
文件
操作函数(一)
在Ubuntu上为
Android
系统编写Linux内核驱动程序(学习老罗的)
首先提出2个
问题
1. 驱动程序的作用是什么? 答:驱动程序的作用主要是向上层提供访问设备寄存器的一个接口,包括读和写。 2. 访问设备驱动程序的方法? 答:a. 通过proc
文件
系统来访问;b. 通过传统的设备
文件
的方法来访问;c. 通过devfs
文件
系统来访问。 他定义的hello.h在最新goldfish路径应该为:~/
Android
_4.2.2_SourceCode/kerne
Git的点点滴滴,结合了部分
Android
Studio自带的版本控制功能
记录了Git
中
的各个功能的使用方法,结合了一些Git内部的原理,在结尾加入了一些维持提交历史清晰整洁的小技巧。在每个小节里会先讲解各个功能在命令行
中
的实现方式,并在每小节的最后介绍在
Android
Studio
中
的图形界面里怎么使用对应的功能,Intellij平台的其他IDE同理。
【
Android
】JNI调用(完整版)
Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 Chap 3:javah命令帮助信息... 16 Chap 4:用javah产生一个.h
文件
... 17 Chap5:jni教程(very very good) 19 Chap6: JNI传递返回值... 26 15.2.2.3 传递字符串... 28 15.2.2.4 传递整
Android
80,471
社区成员
91,385
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章