java - 从 String 到 byte[] 到 String 的转换

标签 java character-encoding utf

我遇到过这样一个 java 字符串,其中以下是 false:

body.equals(new String(body.getBytes()));

我想这是因为 String 构造函数默认将正文 byte[] 的编码视为 UTF-8,我不是 100% 确定。我如何才能将此字符串存储在 byte[] 中并稍后将其转换回来?我想我需要能够确定 byte[] 的编码方式。我该怎么做?

一些上下文:我需要 byte[] 以便我可以压缩数据,将其存储在数据库中,然后解压缩并将未压缩的 byte[] 变回原始字符串。该字符串最初来自某个下载网页的库,我不确定在将其交给我之前他们对字符串做了什么处理。

最佳答案

使用平台默认字符集进行编码和解码。

问题是,字符集可能是有限的,例如美国 ASCII。如果字符串中的某个字符在该字符集之外,我们将丢失它。

使用涵盖所有 unicode 字符的字符集,例如UTF-8、UTF-16。

关于java - 从 String 到 byte[] 到 String 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12924091/

相关文章:

java - 将文件中的 WINDOWS-1252 编码文本显示为 html

java - 将数据放入列表中,然后将其值插入数据库

java - 使用 JOptionPane 的 Java 的 If Else 语句

HTML Unicode 问题 : How to display special characters

PHP发送纯文本邮件并强制使用固定宽度的字符集

javascript - JavaScript 中 & 字符的自动编码转义

MySQL 将非常规数字 (ś,ć,ą,ę...) 更改为 '?' 数字

java - 为什么Java程序的执行时间比C语言中的相同程序要长?

java - PrintWriter 未按正确顺序附加内容

html - 多个字符集 — æ ø å