Ruby 转义字符串中的单引号,并使用未转义的单引号将该字符串插入到另一个字符串中

Ruby 转义字符串中的单引号,并使用未转义的单引号将该字符串插入到另一个字符串中,ruby,string,curl,escaping,Ruby,String,Curl,Escaping,试着打个电话去上班 这是ruby代码 msg = "john's message" @body = %Q|{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"#{msg}"}]}]}}|.gsub("'"){"\\'"} puts @body curl_call = %Q|curl -X POST -H 'Content-Type: applic

试着打个电话去上班

这是ruby代码

msg = "john's message"

@body = %Q|{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"#{msg}"}]}]}}|.gsub("'"){"\\'"}

puts @body

curl_call = %Q|curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer xxxx' -d '#{@body}' --url 'https://api.atlassian.com/site/xxxx/conversation/xxxx/message'|

puts curl_call

system(curl_call)
这是错误:
sh:1:语法错误:未终止的引号字符串


打开建议

当您用unicode编码(
\u0027
)替换
'
时,它可以工作:

.gsub("'", "\u0027")

当我直接做的时候,我就不工作了。你能解释一下它是怎么工作的吗?我的答案不起作用?我刚刚测试过,效果非常好:(