如何将字符串转换为字节和后退

为了转换字符串,我将其转换为一个字节,如下所示: byte[] nameByteArray = cityName.getBytes();

要转换回来,我做了: String retrievedString = new String(nameByteArray); 这显然不起作用。 我怎么把它转换回去?

您原来的城市名称中有哪些字符? 尝试这样的UTF-8版本:

 byte[] nameByteArray = cityName.getBytes("UTF-8"); String retrievedString = new String(nameByteArray, "UTF-8"); 

这显然不起作用。

实际上,这正是你如何做到的。 唯一可能出错的是您隐式使用平台默认编码,这可能因系统而异,并且可能无法表示字符串中的所有字符。

解决方案是明确使用可以表示所有特征的编码,例如UTF-8:

 byte[] nameByteArray = cityName.getBytes("UTF-8"); String retrievedString = new String(nameByteArray, "UTF-8");