有些特殊字符,如Emoji,存储到oracle数据库就会变成乱码,解决方案就是Base64转码后存储到数据库,取出后再解码传输,经过验证是可以的。

  • 编码存储,接收参数转json再.ToString(),不影响效果
//获取参数

JObject pramas = JObject.Parse(context.Request.Params("params"));

string comments = pramas["COMMENTS"].ToString();

byte[] commBytes = System.Text.Encoding.Default.GetBytes(comments);

//转成 Base64 形式的 System.String

string commentsBase64 = Convert.ToBase64String(commBytes);
  • 取出解码,赋值给DataRow,再转json传送到客户端,可正常显示
byte[] commBytes = Convert.FromBase64String(row["COMMENTS"].ToString());

row["COMMENTS"] = System.Text.Encoding.Default.GetString(commBytes);
05-11 16:59