3

我想在我的表中保存一个中文本数据,这是我的代码;

concat('{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\viewkind4\uc1\pard\fs18','1','\par }')

它应该是一个 rtf,但是当我运行时,这就是发生的事情,

{
tf1ansiansicpg1252deff0deflang1033{fonttbl{f0fnilfcharset0 Arial;}}viewkind4uc1pardfs181par }

它应该是这样的:

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\viewkind4\uc1\pard\fs181\par }

'\'标记消失了,有人知道怎么做吗?

4

2 回答 2

3

反斜杠 ( \) 用作转义字符:它表示应以特殊方式处理后面的字符。\r,例如,被读作回车,这将解释结果开头的换行符。您的许多反斜杠显然被忽略了,因为它后面的字符没有任何特殊意义。

\\在需要文字反斜杠的地方使用双反斜杠 ( )。结果将是输出中的一个反斜杠。它是这样工作的,因为第一个反斜杠正在转义第二个,说它应该被特殊地视为文字反斜杠

于 2013-08-22T00:18:00.430 回答
2

与乔纳森所说的类似,我有这个解决方案:

CONCAT('{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\fnil\\fcharset0 Arial;}}\\viewkind4\\uc1\\pard\\fs18','1','\\par }')

将其用作要插入的字符串。

这是 SQLFiddle

于 2013-08-22T00:57:14.103 回答