2011-07-20 156 views
1

我进入这个访问令牌值反斜杠在字符串返回两个反斜杠

864876322670016 \ u00257C4e1d481ecad9eb45b9386745.1-1026038548 \ u00257CshuA8v7lgo7-hRr2AjbUBd3shek

窗体上,但它是这样

带有双反斜线回864876322670016 \\ \\ u00257C4e1d481ecad9eb45b9386745.1-1026038548 u00257CshuA8v7lgo7-hRr2AjbUBd3shek

我通过这个值在Facebook GraphAPI,这将返回一个错误。

我怎样才能得到回报用一个单一的替换双反斜杠?或者有没有办法让双反斜杠不出现?

回答

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

这只是方式它以转义形式显示。你的错误可能在其他地方。

这是对输出的常见误解,当您第一次看到它时会有点困惑,因为Casper已经指出。

this question/answer,那里的人的问题是基本相同:

荡它。我忘记了当结果显示在双引号中时,它显示它已经被转义。

还有一个关于这个感知问题的简短讨论in this blog post