gpt4 book ai didi

java - 编码问题

转载 作者:行者123 更新时间:2023-11-29 05:49:09 25 4
gpt4 key购买 nike

我有一个“windows1255”编码的字符串,有什么安全的方法可以将它转换为“UTF-8”

字符串,反之亦然?

一般来说有没有一种安全的方式(意味着数据不会被损坏)在

之间进行转换

Java 中的编码?

     str.getBytes("UTF-8");
new String(str,"UTF-8");

如果原始字符串不是“UTF-8”编码,数据会损坏吗?

最佳答案

您不能将 Java 中的 String 对象正确编码为 UTF-16 以外的任何编码 - 因为这是规范定义的那些对象的唯一编码。当然,您可以做一些不恰当的事情,例如将 1252 个值放入 char[] 并从中创建一个 String,但事情很快就会出错。

您可以拥有的是以各种不同方式编码的 byte[],您可以使用采用字符集的构造函数将它们与 String 相互转换,并使用代码中的 getBytes

因此您可以使用 String 作为中间体进行转换。我不知道在 JDK 中有什么方法可以进行直接转换,但中间体在实践中可能不会太昂贵。

关于往返转换——您可以在不丢失数据的情况下在编码之间进行转换通常是不正确的。只有少数编码可以处理所有 Unicode 字符(例如 UTF 系列、GB18030 等)——而许多遗留字符集只编码一小部分。您无法在不丢失数据的情况下安全地往返于这些字符集,除非您确定输入属于可表示集。

关于java - 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671735/

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