首页 > 解决方案 > 如何在 MySQL 中 UNCOMPRESS 后保留转义字符?

问题描述

当我解压缩包含转义双引号字符的压缩字符串时,生成的字符串不包含转义字符 ( \ ) 本身。这对随后的调用造成了破坏JSONConvert.DeserializeObject

例如,如果我打电话:

SELECT UNCOMPRESS(COMPRESS("Test\"Me"));

预期的结果是

"Test\"Me"

但实际结果是

"Test"Me"

我应该怎么做才能得到我想要的结果?

标签: mysqlcompressionescaping

解决方案


如果您想进入\"中间,则必须在该COMPRESS()部分中两次逃脱。像这样的东西:

SELECT UNCOMPRESS(COMPRESS("Test\\\"Me"));

或者,不是将值用双引号括起来,而是使用单引号并仅在反斜杠上转义一次,如下所示:

SELECT UNCOMPRESS(COMPRESS('Test\\"Me'));

演示小提琴


推荐阅读