c#sqlite编码utf8

时间:2014-01-31 21:18:24

标签: c# sqlite encoding utf-8

我有一个非常奇怪的问题(我搜索过 - 这是一个常见问题,但我找不到任何有用的解决方案)。

我正在使用C#(。net 4.0)和SQLite。 Pragma编码显示UTF8,所以我想在此编码中保存数据。 我试着用这个:

     private String ToUTF8(string input) {

        Encoding ecdng = Encoding.Default;

        byte[] bts = ecdng.GetBytes(input);
        ecdng = Encoding.UTF8;
        return ecdng.GetString(bts, 0, bts.Length);
        //return input;
    }

    private String FromUTF8(string input)
    {

        Encoding ecdng = Encoding.UTF8;

        byte[] bts = ecdng.GetBytes(input);
        ecdng = Encoding.Default;
        return ecdng.GetString(bts, 0, bts.Length);
        //return input;
    }

但它不起作用。当我要保存数据时使用ToUTF8,选择数据时使用FromUTF8。

我找到的第二个解决方案是:

        private IDbDataParameter AddParameter(IDbCommand command, string paramName, DbType type, object value)
    {
        IDbDataParameter parameter = command.CreateParameter();
        parameter.ParameterName = paramName;
        parameter.DbType = type;
        if (value != null)
            parameter.Value = value;
        else
            parameter.Value = DBNull.Value;
        command.Parameters.Add(parameter);
        return parameter;
    }

但它也不起作用。

我想在我的数据库中存储一些字样。当我通过SQLiteStudio预览数据时,我用奇怪的符号代替抛光字母。 在程序中我有同样的问题,但在波兰字母上的其他符号。

任何人都可以帮我吗?

最诚挚的问候, 太

1 个答案:

答案 0 :(得分:0)

解决。我从文件中读取数据 - 使用带有UTF8编码的ReadAllLines,当我更改为默认值时,我有波兰语字母:)