【发布时间】:2014-05-05 07:01:41
【问题描述】:
在我的家庭网络中,我有一个名为“Den TV”的服务,在“Den”和“TV”之间有一个空格。
当我在移动设备上使用 NSD 管理器解析此服务时,我使用 NsdServiceInfo.getServiceName() 获取服务名称并记录它。我还创建了一个包装 NsdServiceInfo 对象并将其添加到 ListView 的 ArrayAdapter 的对象。
日志消息和列表视图都显示字符串“Den\\032TV”。看起来空格已被替换为“替换”字符(值 26 或八进制 032),然后该字符串已转义为“Den\032TV”,然后进一步转义为“Den\\032TV”。
对我来说,这真是奇怪的行为。为什么 NSD 管理器没有“按原样”返回字符串。 Avahi 对此没有任何问题。即使出于某种我无法理解的原因替换了空间,为什么会被逃脱?两次?
还要注意空格字符的值是 32,所以它可能不是八进制值,但是为什么前面的“0”呢?
谁能帮我弄清楚如何获得真正的价值?
【问题讨论】:
-
我的朋友,请提供一些更详细的代码和sn-p。
-
代码与 Android 开发者网站上的示例代码几乎一字不差。见developer.android.com/training/connect-devices-wirelessly/…。