2014-11-02 93 views
1

这是我第一次使用NFC的功能。我在编码NDEF消息时遇到了一个问题。如何编码NDEF信息

我们尝试了2款应用程序将数据写入NFC标签,名称为NDEF and TagWriter。我写我的数据转换成文本format.This就是在阅读时我的数据

{name:myTag,tagDetails:{name:"myOrganization",addess:"xxxxx"}} 

我明白了什么,都应用在编码和数据注入tag.The问题了。

一旦我读取标签,我将字节转换为字符串,如nfcEvent.tag.ndefMessage[0].payload

什么是由NDEF App所写的标签,在将我写入标签的精确数据转换后。 TagWritter的问题,在转换这个标签数据后,它会以这种格式出现。

"en"{name:myTag,tagDetails:{name:"myOrganization",addess:"xxxxx"}}"" 

对此,我做了一些研究我发现TagWritter App将数据转换为UTF-8格式。

我想是因为这件事发生。可能是我可能错了。

我该如何解决这个问题。

注意:我正在使用Apache cordova构建android应用程序。

谢谢。

回答

0

我看到了插件文档,我正在用它来阅读(chariotsolutions/phonegap-nfc)。他们自己建议删除不必要的字符。所以我们必须编写代码格式。

nfc.bytesToString(nfcEvent.tag.ndefMessage[0].payload).substring(3); 

这是link,我看到

2

如果你看到类似“恩”(实际上是一个非pritable字符+语言代码)预先考虑您的数据,这意味着你的标签写入器的应用将文本字符串放入NFC论坛文本记录中(您可以从NFC Forum's website获取规范)。

该记录包含一个状态字节,一个语言代码(US-ASCII),后跟实际文本。状态字节的高位(b7)指示文本是以UTF-8(b7 = 0)还是UTF-16(b7 = 1)编码。低6位(b5..0)表示语言代码的字节长度。

所以只要语言代码是2个字节,您的解决方案的前三个字节的修剪将工作。

但是,NFC论坛文本记录类型专门用于人类可读的文本,您应该避免使用它来存储JSON对象。使用NFC论坛外部类型记录(或自定义MIME类型记录)来存储数据会更好。