首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码问题

编码问题
EN

Stack Overflow用户
提问于 2013-02-03 18:59:23
回答 1查看 222关注 0票数 1

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

字符串,反之亦然?

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

Java中的编码?

代码语言:javascript
复制
     str.getBytes("UTF-8");
     new String(str,"UTF-8");

如果原始字符串没有编码为"UTF-8“,数据会被破坏吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-03 19:12:02

在Java语言中,您不能将String对象正确地编码为除UTF-16之外的任何其他格式-因为这是规范定义的那些对象的唯一编码。当然,你可以做一些不合适的事情,比如在一个char[]中放入1252个值,然后用它创建一个字符串,但是事情很快就会出错。

您可以使用各种不同的方式对字符串进行byte[]编码,您可以使用接受字符集的构造函数和代码中的getBytes将它们转换为字符串或字符串。

因此,您可以使用字符串作为中间层进行转换。我不知道在JDK中有什么方法可以进行直接转换,但在实践中中间转换的成本可能不会太高。

关于往返转换-通常情况下,您不能在编码之间进行转换而不会丢失数据。只有几种编码可以处理Unicode字符的全谱(例如UTF族、GB18030等),而许多传统字符集只编码一小部分。您不能在不丢失数据的情况下安全地往返于这些字符集,除非您确定输入属于可表示集。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14671735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档