在我的家庭网络中,我有一个名为" Den TV"在" Den"之间留出空格和" TV"。
当我在移动设备上使用NSD Manager解析此服务时,我使用NsdServiceInfo.getServiceName()获取服务名称并进行记录。我还创建了一个包装NsdServiceInfo对象的对象,并将其添加到ListView的ArrayAdapter中。
日志消息和列表视图都显示字符串" Den \\ 032TV"。看起来这个空间已被替换为"替代"字符(值26或八进制032),然后该字符串被转义为" Den \ 032TV"然后进一步逃到" Den \\ 032TV"。
对我而言,这是非常奇怪的行为。为什么NSD Manager不返回字符串"按原样#34;。 Avahi没有任何问题。即使由于某种原因我无法理解空间被替换,为什么然后被逃脱?两次?
另请注意,空格字符的值为32,因此它可能不是八进制值,但是为什么前面的" 0"?
任何人都可以帮我弄清楚如何获得真正的价值吗?
答案 0 :(得分:3)
根据http://www.ietf.org/rfc/rfc6763.txt 请注意,nslookup将空格转义为“\ 032”以用于显示目的,但图形DNS-SD浏览器不应该。 所以“\ 032”不是java转义字符和协议特定的。