我输入了此访问令牌值
864876322670016 \ u00257C4e1d481ecad9eb45b9386745.1-1026038548 \ u00257ChuA8v7lgo7-hRr2AjbUBd3shek
在表单上,但它返回时使用双反斜杠,如此
864876322670016 \\ u00257C4e1d481ecad9eb45b9386745.1-1026038548 \\ u00257CshuA8v7lgo7-hRr2AjbUBd3shek
我将此值传递给Facebook GraphAPI,这会返回错误。
如何获得返回用单个反斜杠替换双反斜杠?或者有没有办法让双反斜杠不出现?
答案 0 :(得分:6)
你确定它实际上带有双反斜杠吗?带有反斜杠的内部字符串看起来像是有双反斜杠,因为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
答案 1 :(得分:1)
它只是以转义形式显示的方式。您的错误可能在其他地方。
这是对输出的常见误解,当你第一次看到它时有点混乱,正如Casper指出的那样。
来自this question/answer,此人的问题基本相同:
该死的。我忘了,当结果以双引号显示时,它显示它已转义。
还有一个关于这个感知问题的简短讨论in this blog post。