我有编码字符串的代码。我使用该代码对字符串进行编码并将其存储在我的数据库中。当我获取存储在我的数据库中的编码字符串并再次对其进行解码时,会出现问题,解码时会丢失一些字符。
这是编码和解码逻辑,我使用普通"插入"用于存储编码字符串的语句。
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)字符,则会出现。我该如何防止这种情况?