why does "STRING".getBytes() work different according to the Operation System
You are not specifying a charset when calling getBytes()
, so it uses the default charset of the underlying platform (or of Java itself if specified when Java is started). This is stated in the String
documentation:
public byte[] getBytes()
Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array.
getBytes()
has an overloaded version that lets you specify a charset in your code.
public byte[] getBytes(Charset charset)
Encodes this String into a sequence of bytes using the given charset, storing the result into a new byte array.