字符串错误:未知的转义序列:/

huangapple go评论111阅读模式
英文:

String Error : unknown escape sequence: /

问题

我有一个类似这样的字符串:

  1. data-url==\"\/entity\/id\/2439918080\"

如果我在这个字符串上使用Println,会抛出一个错误unknown escape sequence: /

请参考http://play.golang.org/p/IbURcPc_gZ(注释掉第一条语句就可以工作)

然而,如果我将\/替换为\u002F,它就可以完美地打印出来。实际的输入数据中充满了这样编码的URL。有没有办法可以在不改变它为\u002F的情况下打印出来?

这是来自JSON的实际字符串:

  1. <div class="card2 media-container portrait" data-card2-name="summary_large_image">
 
 <div class="js-macaw-cards-iframe-container"
 data-src="\/i\/entity\/tfw\/v1\/3298718080?cardname=summary_large_image&earned=true"
 data-autoplay-src="\/i\/cards\/tfw\/v1\/632987845439918080?cardname=summary_large_image&earned=true"
 data-card-name="summary_large_image"
 data-card-url="http:\/\/t.co\/QqWvUQMs5B"
 data-publisher-id="6721522"
 data-creator-id=""
 data-amplify-content-id=""
 data-amplify-playlist-url=""
 data-full-card-iframe-url="\/i\/cards\/tfw\/v1\/632987845439918080?cardname=summary_large_image&earned=true"
 data-has-autoplayable-media="false">
<\/div>

<\/div>



 <div class="entities-media-container js-media-container" style="min-height:0px">
 <\/div>

 <div class="machine-translated-container"><\/div>
 <div class="stats-container stats-container ">
 <\/div>

 <div class="client-and-actions">
 <span class="metadata">
 <span>2:50 PM - 16 Aug 2015<\/span>

 · <a class="permalink-link js-permalink js-nav" href="\/intifada\/status\/632987845439918080" tabindex="-1">Details<\/a>
 


 <\/span>
<\/div>


<\/div>
\"\n\n\n\n\n\n\n\n data-you-follow=\"true\"\n data-follows-you=\"false\"\n data-you-block=\"false\"\n\n\n\n\n\u003e\n\n\n \u003cdiv class=\"context\"\u003e\n \n \n \u003c\/div\u003e\n \u003cdiv class=\"content\"\u003e\n\n \n \u003cdiv class=\"stream-item-header\"\u003e\n

谢谢。

英文:

I have an incoming string that looks like this

  1. data-url==\"\/entity\/id\/2439918080\"

If I Println on this string, it throws an error unknown escape sequence: /

See http://play.golang.org/p/IbURcPc_gZ (comment the first statement and it works)

However if I replace \/ with \u002F it prints perfectly. The actual incoming data is full of such encoded urls. Is there anyway I can print it without having to change it to \u002F ?

Here is the actual string that comes from json

  1. <div class="card2 media-container portrait" data-card2-name="summary_large_image">
 
 <div class="js-macaw-cards-iframe-container"
 data-src="\/i\/entity\/tfw\/v1\/3298718080?cardname=summary_large_image&earned=true"
 data-autoplay-src="\/i\/cards\/tfw\/v1\/632987845439918080?cardname=summary_large_image&earned=true"
 data-card-name="summary_large_image"
 data-card-url="http:\/\/t.co\/QqWvUQMs5B"
 data-publisher-id="6721522"
 data-creator-id=""
 data-amplify-content-id=""
 data-amplify-playlist-url=""
 data-full-card-iframe-url="\/i\/cards\/tfw\/v1\/632987845439918080?cardname=summary_large_image&earned=true"
 data-has-autoplayable-media="false">
<\/div>

<\/div>



 <div class="entities-media-container js-media-container" style="min-height:0px">
 <\/div>

 <div class="machine-translated-container"><\/div>
 <div class="stats-container stats-container ">
 <\/div>

 <div class="client-and-actions">
 <span class="metadata">
 <span>2:50 PM - 16 Aug 2015<\/span>

 · <a class="permalink-link js-permalink js-nav" href="\/intifada\/status\/632987845439918080" tabindex="-1">Details<\/a>
 


 <\/span>
<\/div>


<\/div>
\"\n\n\n\n\n\n\n\n data-you-follow=\"true\"\n data-follows-you=\"false\"\n data-you-block=\"false\"\n\n\n\n\n\u003e\n\n\n \u003cdiv class=\"context\"\u003e\n \n \n \u003c\/div\u003e\n \u003cdiv class=\"content\"\u003e\n\n \n \u003cdiv class=\"stream-item-header\"\u003e\n

Thanks.

答案1

得分: 1

如果你只是想获取一个有效的字符串:

  1. package main
  2. import "fmt"
  3. import "strings"
  4. func main() {
  5. s := `data-url==\"/entity/id/2439918080\"`
  6. s = strings.Replace(s,"\\","",-1)
  7. println(s)
  8. //Replace \/ with \u002F works fine
  9. fmt.Println("data-url==\"\u002Fentity\u002Fid\u002F2439918080\"")
  10. }
英文:

If you are just trying to get a valid string :

  1. package main
  2. import "fmt"
  3. import("strings")
  4. func main() {
  5. s := `data-url==\"\/entity\/id\/2439918080\"`
  6. s = strings.Replace(s,"\\","",-1)
  7. println(s)
  8. //Replace \/ with \u002F works fine
  9. fmt.Println("data-url==\"\u002Fentity\u002Fid\u002F2439918080\"")
  10. }

huangapple
  • 本文由 发表于 2015年9月1日 23:01:31
  • 转载请务必保留本文链接:https://go.coder-hub.com/32334950.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定