将编码字符串存储在数据库中时发出

时间:2015-08-17 07:06:00

标签: c# sql character-encoding binary ascii

我有编码字符串的代码。我使用该代码对字符串进行编码并将其存储在我的数据库中。当我获取存储在我的数据库中的编码字符串并再次对其进行解码时,会出现问题,解码时会丢失一些字符。

这是编码和解码逻辑,我使用普通"插入"用于存储编码字符串的语句。

private char Encode(char character)
    {
        return (char)(character >> 7 | character << 9);
    }

private char Decode(char character)
    {
        return (char)(character >> 9 | character << 7);
    }

编码/解码逻辑没有问题,因为如果我直接解码编码的字符串(不存储和从db中获取),一切正常。

示例:假设我编码&#34; gmail&#34;,它将作为&#34;츀�숀툀�&#34;存储在数据库中,如果我对此进行解码,则输出为&# 34;盖&#34;

我读到了符号&#34;�&#34;如果在数据库中保存了无效(非UTF-8)字符,则会出现。我该如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

您应该将数据存储在binary datatype中。这应该可以解决你的问题!我希望你能改变专栏的类型。