Дзіўны персанаж на запіс карыснай нагрузкі Android ЦНК

Я толькі пачаў праграмаваць з Android NFC, я ўжо паспяхова чытання і запісы дадзеных ЦНК у Mifare Classic тэгу. Праблема заключаецца ў тым, калі праграма чытання карыснай нагрузкі ад ЦНК запісу, ён заўсёды ўтрымлівае сімвал «* ны» у пачатку тэксту. Я думаю, што гэта мова сімвалаў, але як атрымаць рэальны тэкст паведамлення без гэтага сімвала?

Гэта скрыншот таго, што прыкладанне чытання з тэга, фактычны тэкст «Hello World»

enter image description here Here is the code to read

@Override
public void onNewIntent(Intent intent) {
    Log.i("Foreground dispatch", "Discovered tag with intent: " + intent);
  //mText.setText("Discovered tag NDEF " + ++mCount + " with intent: " + intent);

    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

        if (rawMsgs != null) {
            NdefMessage[] msgs = new NdefMessage[rawMsgs.length];

            for (int i = 0; i < rawMsgs.length; i++) {
                msgs[i] = (NdefMessage) rawMsgs[i];
            }

            NdefMessage msg = msgs[0];

            try {
            mText.setText(new String(msg.getRecords()[0].getPayload(), "UTF-8"));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
8
Я думаю, што «ан» паходзіць ад «ангельскага». Я амаль упэўнены, што вы выпадкова дадалі код мовы. Калі змяніць тэг мовы ў вашым XML, вы можаце атрымаць іншую паслядоўнасць знакаў. Калі ласка, паспрабуйце гэта, таму што гэты шлях, па меншай меры, вы будзеце ведаць, адкуль ан прыйшлі і вы можаце зрабіць пошук па Google для рашэння.
дададзена аўтар Lajos Arpad, крыніца
Лайоша, Бэн ... дзякуй за вашыя каментары, я паспрабаваў з дапамогай іншага прыкладання, NFC інфармацыі тэгаў, прыкладанне паказвае «Прывітанне World'.Btw Я знайшоў гэтую праблему, так як Nils Pipenbrik тлумачыць ніжэй. Гэтая спасылка code.google.com/p/openmobster/wiki/NFC паказвае як правільна чытаць дадзеныя карыснай нагрузкі.
дададзена аўтар Lorensius W. L. T, крыніца
Паспрабуйце разбор NdefMessage з дапамогай code.google.com/p/ndef-tools- для-андроіда
дададзена аўтар ThomasRS, крыніца
Калі вы маглі б размясціць код, які запісвае тэг, гэта было б карысна. Вы спрабавалі з дапамогай прыкладання Чужога прачытаць тэг, каб убачыць, калі ён знаходзіцца ў тым, як вы напісалі тэг, або калі ён знаходзіцца ў тым, як вы чытаеце гэта? (Калі ён адлюстроўвае тую ж інфармацыю, як, знаходзячыся ў ЦНК паведамленне, гэта праблема запісу, калі ён адлюстроўвае толькі «Hello World ...», то гэта праблема чытання.)
дададзена аўтар Ben Ward, крыніца

1 адказы

Тое, што вы бачыце, гэта неапрацаваныя дадзеныя з ЦНКА тэкставай запісу пераўтворацца ў UTF8.

ЦНК тэкст запіс будуецца наступным чынам:

Першы байт: Control-Byte

<�Р> Біт 7: 0: тэкст кадуецца ў UTF-8 1: тэкст кадуецца ў   UTF16      <�Р> Біт 6: РФС (павінна быць ўстаноўлена роўным нулю) </р>      <�Р> Bit 5..0 :. Даўжыня кода IANA мовы

За гэтым варта код мовы, захоўваецца ў US-ASCII (еп ў вашым выпадку), як вызначана ў RFC 3066. Даўжыня мовы-кода задаецца у кіраўніку байце.

І гэта суправаджаецца тэкстам у фармаце, як паказана бітам 7-кантрольнага байта.

Пусты квадрат сімвал ідзе ад пераўтварэння зыходных дадзеных у UTF-8. Я амаль упэўнены, што кантроль байты ў вашым выпадку маюць лікавае значэнне 2. Бо няма друку сімвалаў для гэтага лічбавага значэння яно замяняецца на непечатаемый шаблонны знак і сімвал з юнікода-набору. Гэта, як правіла, адлюстроўваецца як пусты квадрат.

14
дададзена
Прывітанне Nils, дзякуй за адказ, цяпер я ведаю, як правільна чытаць дадзеныя карыснай нагрузкі, па гэтай спасылцы
дададзена аўтар Lorensius W. L. T, крыніца
Акрамя таго, тут NDEF Тэкст запісу вызначэнне тыпу, спадзяюся, што гэта дапамагае іншым .. maintag.fr/fichiers/pdf-fr/nfcforum-ts-rtd-text-1-0.‌ PDF
дададзена аўтар Lorensius W. L. T, крыніца
У наступны раз, калі ласка, скапіруйце і ўстаўце значэння ў ваш адказ, а не спасылкі. Абедзве спасылкі мёртвыя !!
дададзена аўтар nemicolopterus, крыніца