Android 和 Java:String.getBytes() 没有正确解析转义字符

Chee-Yi

我有一个Java字符串"Hi\n",我想转换到byte[],但是当我有一个变量,其内容是"Hi\n"和我打电话variable.getBytes(StandardCharsets.UTF_8)\,并n分别分析,而不是一起作为一个换行符,所以我在阵列中有4个字节的结束而比预期的 3 个字节。

如何正确执行此转换?

编辑:添加了截图。我在我调用的地方设置了一个断点getBytes(),并在payloadis评估表达式"hi\n",并且评估返回了byte[]4 个字节的 a。"hi\n".getBytes(StandardCharsets.UTF_8)然而,当我直接这样做时,我得到了 3 个字节,这让我感到困惑。

在此处输入图片说明

Chee-Yi

我的菜鸟错误。问题是因为该"Hi\n"示例是String来自 Android的用户输入EditText而不是真正的String文字,所以反斜杠\已经被转义\\,因此它的实际内容String["H", "i", "\\", "n"]. 我添加了一些代码来进行输入清理:

// Assume payload is content of an EditText which the user has entered "Hi\n" in
payloadInBytes = payload.replace("\\n", "\n").getBytes(StandardCharsets.UTF_8);

在这之后payloadInBytes是预期的 3 个字节。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android 2.2:解析NoSuchMethodError java.lang.String.getbytes

来自分类Dev

Android 2.2:解析NoSuchMethodError java.lang.String.getbytes

来自分类Dev

java.lang.String.getBytes()和java.nio.charset.CharsetEncoder.encode()有什么区别?

来自分类Dev

java.lang.String.getBytes()和java.nio.charset.CharsetEncoder.encode()有什么区别?

来自分类Dev

String.getBytes()在android中某些较大的字符串上不起作用

来自分类Dev

String.getBytes() 和 Charset.encode() 的区别

来自分类Dev

Siphash tostring和getBytes()

来自分类Dev

是什么的String =新的字符串之间的差异(s.getBytes( “UTF-8”), “UTF-8”); 和字符串S =新字符串(s.getBytes(), “UTF-8”);

来自分类Dev

Java getBytes与getBytes(charset)的奇怪行为

来自分类Dev

Java字符串getBytes非确定性

来自分类Dev

Java SecureRandom创建的盐具有不同的getBytes()值

来自分类Dev

Java的字符串 “hello” 具有12个字节时的getBytes( “UTF-16”)?

来自分类Dev

为什么“ STRING” .getBytes()会根据操作系统而有所不同

来自分类Dev

Java的String.GetBytes(Charset)中的UTF-8

来自分类Dev

等效于Unix Shell(Cygwin)中Java的String.getBytes()

来自分类Dev

C#的getBytes(“ UTF-8”)和Encoding.UTF8.GetBytes()之间的区别

来自分类Dev

PHP等效于Java中的getBytes

来自分类Dev

Java getBytes UTF-8编码

来自分类Dev

这是Android中获取UTF-16字节数组的最有效的getBytes

来自分类Dev

这是Android中获取UTF-16字节数组的最有效的getBytes

来自分类Dev

iOS和Android的AES加密(UINT没有在Java中)

来自分类Dev

Convert.ToBase64String / Convert.FromBase64String和Encoding.UTF8.GetBytes / Encoding.UTF8.GetString之间的区别

来自分类Dev

无法在VBA上使用.GetBytes和.ComputeHash方法

来自分类Dev

在Java中解析String和Int

来自分类Dev

解析和替换Java String中的double

来自分类Dev

FFmpeg Android和FFmpeg Android Java有什么区别?

来自分类Dev

Android TextView没有显示正确的字符

来自分类Dev

RabbitMQ的Android和Java的

来自分类Dev

String.getBytes()的结果是否会包含零?

Related 相关文章

  1. 1

    Android 2.2:解析NoSuchMethodError java.lang.String.getbytes

  2. 2

    Android 2.2:解析NoSuchMethodError java.lang.String.getbytes

  3. 3

    java.lang.String.getBytes()和java.nio.charset.CharsetEncoder.encode()有什么区别?

  4. 4

    java.lang.String.getBytes()和java.nio.charset.CharsetEncoder.encode()有什么区别?

  5. 5

    String.getBytes()在android中某些较大的字符串上不起作用

  6. 6

    String.getBytes() 和 Charset.encode() 的区别

  7. 7

    Siphash tostring和getBytes()

  8. 8

    是什么的String =新的字符串之间的差异(s.getBytes( “UTF-8”), “UTF-8”); 和字符串S =新字符串(s.getBytes(), “UTF-8”);

  9. 9

    Java getBytes与getBytes(charset)的奇怪行为

  10. 10

    Java字符串getBytes非确定性

  11. 11

    Java SecureRandom创建的盐具有不同的getBytes()值

  12. 12

    Java的字符串 “hello” 具有12个字节时的getBytes( “UTF-16”)?

  13. 13

    为什么“ STRING” .getBytes()会根据操作系统而有所不同

  14. 14

    Java的String.GetBytes(Charset)中的UTF-8

  15. 15

    等效于Unix Shell(Cygwin)中Java的String.getBytes()

  16. 16

    C#的getBytes(“ UTF-8”)和Encoding.UTF8.GetBytes()之间的区别

  17. 17

    PHP等效于Java中的getBytes

  18. 18

    Java getBytes UTF-8编码

  19. 19

    这是Android中获取UTF-16字节数组的最有效的getBytes

  20. 20

    这是Android中获取UTF-16字节数组的最有效的getBytes

  21. 21

    iOS和Android的AES加密(UINT没有在Java中)

  22. 22

    Convert.ToBase64String / Convert.FromBase64String和Encoding.UTF8.GetBytes / Encoding.UTF8.GetString之间的区别

  23. 23

    无法在VBA上使用.GetBytes和.ComputeHash方法

  24. 24

    在Java中解析String和Int

  25. 25

    解析和替换Java String中的double

  26. 26

    FFmpeg Android和FFmpeg Android Java有什么区别?

  27. 27

    Android TextView没有显示正确的字符

  28. 28

    RabbitMQ的Android和Java的

  29. 29

    String.getBytes()的结果是否会包含零?

热门标签

归档