C# Sqlite数据库是否支持波斯语/阿拉伯语编码?

C# Sqlite数据库是否支持波斯语/阿拉伯语编码?,c#,sqlite,encoding,persian,C#,Sqlite,Encoding,Persian,我在C#中使用Sqlite数据库,我有一个问题:Sqlite数据库是否支持波斯语/阿拉伯语编码?因为我写了一些阿拉伯语/波斯语数据,当我想从数据库中读取数据时,它是以不合适的形式读取的 我的代码: int len = ds.Tables["tbl"].Rows.Count; int index = rnd.Next(0, len - 1); //notifyIcon1.ShowBalloonTip(15, "پیام عشق ", ds.Table

我在C#中使用Sqlite数据库,我有一个问题:Sqlite数据库是否支持波斯语/阿拉伯语编码?因为我写了一些阿拉伯语/波斯语数据,当我想从数据库中读取数据时,它是以不合适的形式读取的

我的代码:

int len = ds.Tables["tbl"].Rows.Count;
            int index = rnd.Next(0, len - 1);
            //notifyIcon1.ShowBalloonTip(15, "پیام عشق ", ds.Tables["tbl"].Rows[index][0].ToString(), ToolTipIcon.Info);
            string str = ds.Tables["tbl"].Rows[index][0].ToString();
            MessageBox.Show(str);
DataSet ds;
ds = SQLite_DB.Select_DB(SQLite_DB.Con_string("data.s3db"), "select * from info");
谢谢

我的下一个代码:

DataSet ds;
ds = SQLite_DB.Select_DB(SQLite_DB.Con_string("data.s3db"), "select * from info");
简言之,没有

SQLite只支持数量非常有限的编码:UTF-8和UTF-16(多种)

幸运的是,UTF-8非常适合表达阿拉伯语、波斯语或任何其他语言(包括克林贡语,如果你喜欢的话)


当然,您的工具链的某些其他部分可能会把编码搞砸,请查看C#.net SQLite包装器的文档和表单代码。

只要您使用的是或更高版本,就可以使用UTF-8/UTF-16,哪一个是阿拉伯语的最佳选择。

您的代码与Sqlite无关。@salar_cpp_cs:检查您的整个工具链,并在每个级别测试UTF-8的清洁度。使用外部可执行文件(如sqlite3.exe)检查数据库是否格式正确(在您的平台上可能会有不同的名称);检查源文件是否为UTF-8编码,检查是否设置了任何适当的编译器标志,检查所有辅助文件是否正确编码和读取,了解如何使用C#l10n和i18n实用程序,并了解字符编码的一些核心概念以及SQLite的设计。首先,Williham是正确的-你需要确认垃圾没有进入。如果您使用的是System.Data.Sqlite,请在插入数据的位置放置一个断点。大概是通过SqliteCommand参数来实现的。看看这个参数的值是什么——如果这是垃圾,那么编码就搞糟了。System.Data.Sqlite将接受一个CLR字符串(基本上是UCS2),并为您将其转换为UTF-8,因此,只要输入的字符串看起来不错,就应该正确输出。