Strange character on Android NDEF record payload

后端 未结 3 2053
离开以前
离开以前 2020-12-16 02:39

I just started coding with Android NFC, i\'ve successfully read and write NDEF data into mifare classic tag. The problem is when app read the payload from ndef record, it al

3条回答
  •  情歌与酒
    2020-12-16 03:23

    What you're seeing is the raw data of an NDef text-record converted to UTF8.

    The NDef text-record is build like this:

    First byte: Control-Byte

    Bit 7: 0: The text is encoded in UTF-8 1: The text is encoded in UTF16

    Bit 6: RFU (MUST be set to zero)

    Bit 5..0: The length of the IANA language code.

    This is followed by the language code, stored in US-ASCII (en in your case) as defined in RFC 3066. The length of the language-code is given in the control-byte.

    And this is followed by the text in the format as specified by bit 7 of the control-byte.

    The empty square character comes from your conversion of raw data into UTF-8. I'm almost sure that the control-byte in your case has the numeric value 2. Since there is no printable character for this numeric value it gets replaced with the non-printable placeholder character from the unicode-set. This is usually displayed as an empty square.

提交回复
热议问题