我输入了此访问令牌值
864876322670016\u00257C4e1d481ecad9eb45b9386745.1-1026038548\u00257CshuA8v7lgo7-hRr2AjbUBd3shek
,但返回时带有双反斜杠,如下所示
864876322670016\u00257C4e1d481ecad9eb45b9386745.1-1026038548\u00257CshuA8v7lgo7-hRr2AjbUBd3shek
我将这个值传递给Facebook GraphAPI,结果返回一个错误。
如何将双反斜杠替换为单反斜杠?或者有没有办法让双反斜杠不出现?
发布于 2011-07-20 21:07:14
你确定它实际上是用双反斜杠返回的吗?在内部,带有反斜杠的字符串看起来像是有双反斜杠,因为Ruby对它们进行了转义:
> a = 'aaa\bbb\ccc'
=> "aaa\\bbb\\ccc" # Looks like doubles
> a
=> "aaa\\bbb\\ccc"
> a.inspect
=> "\"aaa\\\\bbb\\\\ccc\"" # Looks even worse
> puts a
aaa\bbb\ccc # ...but it isn't但是如果它们是双反斜杠,你可以这样做:
> puts aa
aaa\\bbb\\ccc # String with double backslash
> aa.gsub!("\\\\", "\\")
> puts aa
aaa\bbb\ccc发布于 2011-07-20 21:14:57
这只是它的显示方式,转义形式。你的错误很可能出现在其他地方。
这是对输出的一种常见误解,正如Casper所指出的,当您第一次看到它时,它会让人感到有点困惑。
来自this question/answer,这个人的问题本质上是相同的:
他妈的。我忘记了当结果显示在双引号中时,它表明它是转义的。
这里还有一个简短的关于这个感知问题的讨论,in this blog post。
https://stackoverflow.com/questions/6761239
复制相似问题