【问题标题】:How to create SQLite database in UTF-8 encoding如何以 UTF-8 编码创建 SQLite 数据库
【发布时间】:2013-08-20 13:22:58
【问题描述】:

我正在使用 SQLite 数据库开发一个 Windows 应用商店应用程序 (C#)。

问题

如果我在一行中有一个特殊字符,如“qwerôty”,当我的应用检索此值时,字符串对象包含“qwerty”(没有此特殊字符)。

数据库创建

我使用 sqlite3 实用程序创建我的数据库,然后我将我的所有查询(创建表、插入...)写入一个文件(UTF-8 编码)并复制并粘贴所有查询在 sqlite3 的命令提示符下。

当我执行 select * from table 时,我看到“qwerôty”,但一旦在我的应用程序中,该字符串不包含“ô”。

应用内代码

这是我从 SQLite 数据库中检索数据的方法:

private SQLiteAsyncConnection conn = new SQLiteAsyncConnection(DbPath);
return await conn.Table<BusinessObject>().ToListAsync();

字符串属性在 BusinessObject 对象内

我的猜测

我认为我使用 sqlite3 创建的 sqlite 文件未以 UTF-8 编码。当我使用 Windows 内置记事本打开它并执行“另存为”时,选择的编码是 ANSI。但我找不到如何创建以 UTF-8 编码的数据库。

如果您对我的问题有任何想法,请提前致谢。

拉菲

【问题讨论】:

  • 我刚刚尝试使用 SQLiteSpy 填充我的数据库,并且所有特殊字符都可以从我的应用程序中很好地读取。所以它让我认为问题来自 sqlite3 工具,但我没有真正的解释。在有人找到充分的理由之前,我会让这篇文章无人回答。谢谢,拉菲。
  • 记事本是文本(解码)保存为编码我认为只是为了保存。

标签: c# .net sqlite utf-8 windows-store-apps


【解决方案1】:

正如狗仔队所说,问题来自记事本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2019-09-15
    相关资源
    最近更新 更多