gpt4 book ai didi

java - 为什么我需要在 String.getBytes(charsetName) 中使用编码

转载 作者:行者123 更新时间:2023-12-01 17:21:02 26 4
gpt4 key购买 nike

通常,当我需要将字符串转换为 byte[] 时,我使用不带参数的 getBytes() 。我检查过它没有保存我应该使用字符集。为什么我应该这样做 - 字母“A”总是会被解析为0x41?不是吗?

最佳答案

Ususally when I need to convert my string to byte[] I use getBytes() without param.

立即停止这样做。我建议您始终指定编码。如果您想使用平台默认编码(如果您不指定编码,则会得到这种编码),请明确执行此操作,以便更清晰。但无论如何,这种方法应该很少。就我个人而言,我几乎在所有情况下都使用 UTF-8。

Why I shoud do so - letter 'A' will always be parsed to 0x41? Is't it?

不。例如,使用 UTF-16,“A”将是两个字节 - 0x41 0x00 或 0x00 0x41(取决于字节顺序)。在 EBCDIC 编码中,情况可能完全不同。

大多数编码以相同的方式处理 ASCII 字符 - 但 ASCII 之外的字符在不同编码中的表示方式非常不同(并且许多编码仅支持 Unicode 的子集)。

查看我的article on Unicode (以 C# 为中心,但原理是相同的)了解更多详细信息 - 以及指向比您可能想要的更多信息的链接。

关于java - 为什么我需要在 String.getBytes(charsetName) 中使用编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770774/

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