文档章节

sqlite中文路径非常规解决方案

Day
 Day
发布于 2010/07/30 12:25
字数 478
阅读 3052
收藏 2

前段时间做了个软件,用.net做的,用户和软件的一些配置内容用sqlite3来存储.

于是把sqlite3编译成dll并在C#/CLR里调用.

测试了下,发现sqlite3不支持中文路径,有些带空格的路径(Program Files,Document and settings等),打开数据库会出错.

查了下文档,好像编码的问题(UTF-8,UTF-16等),因为这方面内容比较多,没有细看,所以想了一些非常规的解决方法

 先看常见的打开数据库

/*相对路径方法:打开当前目录下的test.sb,如果不存在这个db则创建*/
sqlite3* db;
int rc = sqlite3_open("test.db",&db);

 

/*绝对路径方法:比如打开C盘下的test.sb,如果不存在这个db则创建*/
sqlite3* db;
int rc = sqlite3_open("C:\\test.db",&db);

 

/*会出现问题的方式:比如打开C:\Program Files目录下的test.sb,如果不存在这个db则创建*/
sqlite3* db;
int rc = sqlite3_open("C:\\Program Files\\test.db",&db);

/*会出现问题的方式1:比如打开C:\实验文件夹\目录下的test.sb,如果不存在这个db则创建*/
sqlite3* db;
int rc = sqlite3_open("C:\\实验文件夹\\test.db",&db);

为了打开上面2个目录下的test.db

可以把系统的当前路径设置为"C:\\Program Files\\"或"C:\\实验文件夹\\",然后再用相对路径方式打开:

int rc = sqlite3_open("test.db",&db)

即可,VC++.net代码:

/*修改当前路径*/
System::Environment::CurrentDirectory = "C:\\实验文件夹" ;	
/*打开数据库*/
int rc = sqlite3_open("test.db",&db);

 

要说的是,设置好当前路径并打开完后,最好把当前路径改回成常用的路径:比如桌面,我的文档等.

因为"C:\\实验文件夹"被设置成当前路径后在程序中就不能删除,删除会提示文件夹正在被另一个进程使用.

© 著作权归作者所有

Day

Day

粉丝 34
博文 14
码字总数 10261
作品 0
杭州
程序员
私信 提问
SQLite第一课 sqlite3.exe使用教程

1).open 打开数据库 例子: sqlite> .open test.db 注意:>后面有点 2) .tables 查看数据库包含的表名 例子: sqlite> .tables 注意:>后面有点 3) .schema 查看数据库中所有的表的结构 例子...

fengyuzaitu
08/15
0
0
java对sqlite进行插入操作的乱码问题

用java连接sqlite数据库之后,将sql语句转码utf-8之后使用statement.executeUpdate()插入中文是乱码,转码后读取出来也是乱码。但是如果从命令行插入中文条目,在程序中进行转码后可正常显...

夜星寒
2013/06/28
2.6K
2
Android 小项目之--SQLite 使用法门

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库 --大名鼎鼎的SQLite。SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资...

mayi
2011/11/14
6K
2
PHP 中文工具类 ChineseUtil v1.0.3 三种加载模式任选

ChineseUtil —— PHP 中文工具类,支持汉字转拼音、拼音分词、简繁互转。 PHP Chinese Tool class, support Chinese pinyin, pinyin participle, simplified and traditional conversion 目......

宇润
2018/04/08
1K
0
sqlite数据库中文乱码如何解决

在使用php+sqlite数据的时候,遇到中文就出现乱码,通过测试数据库编码和文件编码不一致造成的,请问如何设sqlite数据的编码,解决乱码问题,请大侠们帮忙解决一下,谢谢了 补充:通过sqlit...

山中云雾
2012/04/22
7K
3

没有更多内容

加载失败,请刷新页面

加载更多

centos7 安装 mysql5.7 版本(全)

centos 安装 版本说明 :centos7,mysql5.7 ,不是 centos7 可能有些命令不兼容 安装 mysql-server # 下载并安装 mysql yum wget -i -c http://dev.mysql.com/get/mysql57-community-relea......

sanri1993
14分钟前
1
0
Spring3.x升级到Spring4.x-5.x时关于MappingJacksonHttpMessageConverter的报错问题

在Spring4.x或者以上的版本强使用(不然会报错): org.springframework.http.converter.json.MappingJackson2HttpMessageConverter 如果是Spring4.0获者以下的版本可以使用MappingJacksonH...

code-ortaerc
17分钟前
1
0
OSG 渲染状态污染到其它节点怎么解决?

在根节点补上初始状态

洛克人杰洛
18分钟前
1
0
grid 布局 设置行列间距

本文转载于:专业的前端网站➪grid 布局 设置行列间距 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="widt......

前端老手
30分钟前
2
0
spring-data-elasticsearch 和 Jackson 配合使用的bug

下面先简单描述项目。 项目依赖: dependencies { implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-elasticsearch', version: '2.1.0.RELEASE'......

Landas
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部