字符串的字节值变化

时间:2019-02-12 12:45:05

标签: java encryption bit

如果系统从32位更改为64位,字符串的字节值是否会更改?

假设我有一个字符串,我想要该字符串的字节值。我想知道Windows 32位和Windows 64位系统中的字节值是否保持相同?

1 个答案:

答案 0 :(得分:2)

我必须假设“字符串的字节值”是指通过使用给定编码对字符串进行编码而生成的字节值。

如果是这样,那么从32位架构切换到64位架构不会改变结果。

但是,如果仅使用String.getBytes()而没有任何参数来获取byte[],则返回值将取决于系统默认编码。虽然相同设置的相同OS的32位和64位版本之间的差异不太可能有所不同,但是系统默认编码可能会基于许多其他参数(例如,您的OS中配置的UI语言)而有所不同,因此始终是始终通过指定这样的特定编码来避免此问题的好主意:

 byte[] bytes = myString.getBytes(StandardCharsets.UTF_8);

如果以相同的byte[]值调用此调用,则无论您在哪种操作系统,体系结构或语言环境设置上运行它,都将始终产生相同的myString