java - 字符串字节值的变化

标签 java encryption bit

如果系统从32位变为64位,字符串的字节值会改变吗?

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

最佳答案

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

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

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

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

如果对相同的 myString 值调用,此调用将始终生成相同的 byte[],无论您碰巧在什么操作系统、体系结构或区域设置上运行它.

关于java - 字符串字节值的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54650431/

相关文章:

java - 加密通过 Amazon S3 发送的大流

security - 从用户的 RSA 公钥计算用户的私钥

java - 部署 Grails 应用程序时出错 - 初学者

java - 新对象 { } 构造

ios - iOS 钥匙串(keychain)是否在没有设备密码的情况下加密?

c - 如何仅使用按位运算符来防止 C 中的位溢出

c - 逐位串联

c - 在 C 微 Controller 中设置位

java - 执行 Java Web App 时未找到类

java - 逐行写入文本文件