gpt4 book ai didi

java - 如何从 Java 中的字符串中精确获取 16 个字节

转载 作者:行者123 更新时间:2023-12-01 11:32:52 25 4
gpt4 key购买 nike

我正在进行 NFC 实验,需要写入 MIFARE Classic 标签,但它给了我一个异常,因为它需要 16 个字节。这听起来有点菜鸟,但我已经尝试了一切,但它仍然给了我同样的异常(exception):

 Caused by: java.lang.IllegalArgumentException: must write 16-bytes
at android.nfc.tech.MifareClassic.writeBlock(MifareClassic.java:446)
at com.kaissersoft.cartracker.MainActivity$1$1.doInBackground(MainActivity.java:80)
at com.kaissersoft.cartracker.MainActivity$1$1.doInBackground(MainActivity.java:72)
at android.os.AsyncTask$2.call(AsyncTask.java:297)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)

我使用的代码片段之一:

 mifare.connect();
//DO STUFF
mifare.writeBlock(4, "CAR 100000000000".getBytes(Charset.forName("UTF-16LE")));

最佳答案

如果你打印出这个字节数组的长度,它会返回 32。这意味着你选择的编码每个字符使用的字节数比你想要的要多。

您可以尝试将其与 UTF8 一起使用,这至少会为您提供所需的字节数,但要注意您尝试发送的字符。 See the link for an explanation on this.

"CAR 100000000000".getBytes(Charset.forName("UTF8"))

关于java - 如何从 Java 中的字符串中精确获取 16 个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30275695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com