我正在尝试使用Windows Phone 8.1上的ProximityDevice类编写/读取一些NFC标签。这是写标签的代码…
var dataWriter = new Windows.Storage.Streams.DataWriter();
dataWriter.unicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.utf16LE;
dataWriter.writeString("test");
var pubId = proximityDevice.publishBinaryMessage
"Windows:WriteTag.Sample",
dataWriter.detachBuffer(),
proximityWriteTagMessageTransmitCallback);
写完标签后,看起来很成功,我读了它。当我这样做时,接收到的数据只是字符串的第一个字符(在本例中为"t")。我用NFC交互器检查了标签,它报告标签的可写大小为137字节,消息大小为17字节,因此空间似乎不是问题。
我也用NFC测试了标签,启动它,它工作得很好,所以我对问题所在感到茫然。如有任何帮助,不胜感激。
我解决了这个问题。事实证明,将自定义文本写入标记需要UTF-8编码。我改变…
dataWriter.unicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.utf16LE;
dataWriter.unicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.utf8;
现在数据被写入标记,并且可以正确地从标记中检索数据。