先搞清楚几件事情:
(1) SQLite只能按照几种标准的字符编码保存数据,及时你按照GB2312保存了汉字,SQLite还是按照数据库的字符集解析字符编码。这是问题的关键。数据库的字符编码:
PRAGMA encoding; (查看当前数据库的字符编码)
PRAGMA encoding = "UTF-8";
PRAGMA encoding = "UTF-16";
PRAGMA encoding = "UTF-16le";
PRAGMA encoding = "UTF-16be";
(2)如果SQLite将汉字按照GB2312编码保存到数据库中(通过UltraEdit二进制查看,如果能够看到中文,说明是按照GB2312保存的),查询肯定会出问题(不考虑BLOB字段)。使用sqlite3.exe执行插入操作,保存的汉字都是按照GB2312编码保存的,因此使用like匹配时,肯定会出问题。
(3)我现在成功处理的方法:
1. 使用sqlite3_prepare执行的SQL语句,必须编码成UTF8格式;Delphi: AnsiToUTF8转换
2. 如果使用sqlite3_bind_text绑定文本,也必须编码成UTF8格式
3. 字符读出来后,也必须转换成GB2312编码,UTF8ToAnsi(Result)
这样就不存在,查询不出内容的问题。
分享到:
相关推荐
3. **sqlite3-mt-unicode.lib** 和 **sqlite3-mt-multibyte.lib**:这里的“mt”表示多线程(multi-thread),这些是多线程版本的静态库,支持Unicode编码和多字节字符集。Unicode库适用于处理全球化字符串,而多...
8. **Unicode 支持**:在 2.1.2 版本中,很可能已经包含了对 Unicode 字符集的支持,确保了多语言环境下的正确显示和存储。 9. **数据库版本管理**:可能提供了适应不同 SQLite 数据库版本的能力,确保与不同版本的...
这个"易语言源码生成Sqlite表结构.7z"压缩包文件包含的源码很可能是用来帮助用户自动生成SQLite数据库的表结构。SQLite是一款轻量级的数据库管理系统,广泛应用于嵌入式系统和个人电脑,因为它无需服务器进程,可以...
标题 "cnblogs(del)sqlites 1488 const.7z" 暗示这是一个与 Delphi 开发相关的压缩文件,其中包含了与 SQLite 数据库相关的 1488 个常量(const)。描述内容简洁,仅是文件名的重复,没有提供额外的信息。标签 ...
确保在导入过程中正确选择字符集和排序规则,以避免编码问题。 2. **配置数据库参数** 数据库连接参数通常存储在zb_users\c_option.php文件中。打开这个文件,找到与数据库连接相关的设置,如数据库主机名、数据库...
11. **数据库访问**:Python通过标准库如sqlite3或第三方库如pymysql、psycopg2等,可以方便地与各种数据库系统进行交互。 12. **Web开发**:Python有众多用于Web开发的框架,如Django、Flask,它们提供了快速构建...
在加载数据时,我们可以根据数据源(如SQLite数据库、JSON文件或网络API)读取条目并将其添加到集合中。 排序是这个工具的关键部分。Android提供了Collections.sort()方法,可以对List进行排序。在我们的例子中,...
8. **Unicode兼容**:UniDAC 兼容Unicode字符集,可以处理不同语言和字符编码的数据库。 **包含的文件和目录详解:** 1. **Demos**:包含了各种示例应用程序,帮助用户了解如何使用UniDAC组件进行数据库访问。 2....
标题 "Project09.7z" 提示我们这是一个软件开发项目,可能是一个Windows应用程序,专注于个人财务管理。描述中提到的功能包括用户登录、收支情况管理和基本资料管理,这表明该系统旨在帮助用户跟踪和管理他们的财务...
'charset' => 'utf8mb4', // 字符集 ]; ``` ### 2. 连接数据库 在PHP中,使用Medoo连接数据库只需要一行代码: ```php require 'database.php'; $database = new Medoo($config); ``` ### 3. 数据表操作 #### ...
在 FireDAC_(SRC)_v8.0.5.3365.7z 这个压缩包中,包含了 FireDAC 的源代码,版本号为 8.0.5,版本号 3365 表示这是一个特定的更新或修复版本。 FireDAC 是 Delphi 开发者用于快速、高效地连接到各种数据库的重要...
1. **C#语言基础**:包括变量、数据类型、常量、运算符、控制结构(如if语句、switch语句、for循环、while循环和do-while循环)、数组、字符串以及方法的使用。 2. **面向对象编程**:C#是一种面向对象的语言,书中...
7. **适配多语言**:考虑到国际化的需要,除了英文,还需要处理其他语言的字符集。例如,对于中文,可以使用拼音转换库如Pinyin4j来实现类似的功能。 通过分析“源码说明.txt”和查看源代码,我们可以深入理解这些...
2. **建立连接**:在设计阶段,将TZConnection组件拖放到表单上,设置其连接字符串(例如,对于MySQL可能是“DriverID=ZMySQL;Database=testdb;User Id=root;Password=secret;”),并设置其他连接属性。 3. **执行...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{... {15}sqlite3}{213}{chapter.15} {16}Web基础}{215}{chapter.16} {16.1}HTML}{215}{section.16.1} {...
修改BUG:Sqlite3数据库支持库中的“Sqlite记录集.绑定参数()”命令不支持汉字/UTF-8。 14. 修改BUG:VCL相关支持库部分组件在修改个别属性或调用个别方法后不可见,并改进了Delphi版本的支持库SDK。 15. 修改BUG...
其次,字母索引,也称为快速滚动或A-Z侧滑栏,常见于大型数据集的导航。在Android通讯录应用中,它允许用户通过点击字母直接跳转到对应的姓氏或名字部分。实现这一功能,通常需要以下步骤: 1. 创建一个...
通过使用标准的ASCII字符集(A-Z,a-z,0-9,+和/),可以将任何二进制数据表示为可打印的文本。 - 当对字符串进行Base64编码后,可以有效避免特殊字符导致的SQL注入问题。但是,这种方式也存在明显的局限性:编码...
进程相关模块-3 进程信息 进度条高级设置 进度下载模块 V1.0 1.0 进制转换-wuflea 进制转换-西风 禁止程序多次运行 禁止二次运行 禁止重复运行 K kernel模块 客户管理模块 控件+窗口模块 控件大小调整模块 ...