me he encontrado con esta línea de código heredado, lo que estoy tratando de averiguar:String de Java codificación (UTF-8)
String newString = new String(oldString.getBytes("UTF-8"), "UTF-8"));
Por lo que yo puedo entender, se codifican & decodificación mediante el mismo charSet.
¿Cómo es esto diferente de lo siguiente?
String newString = oldString;
¿Hay alguna situación en la que las dos líneas tendrán diferentes salidas?
p.s .: Solo para aclarar, sí, estoy al tanto del excellent article on encoding by Joel Spolsky!
Bueno, por supuesto, uno * * diferencia es que con 'Cadena newString = oldString;', todavía tiene solamente una copia de la cadena (sólo está señalando de dos variables). La decodificación/codificación hace una * copia * de la cadena. No es que importe mucho, ya que 'String's son inmutables. Sin embargo, probablemente esta no sea la razón por la que ese código antiguo es así; 'String' tiene una forma mucho más directa de clonarse (' String (String) '). No puedo pensar en una * buena * razón por la que harías la codificación/descodificación, aparte de probar los métodos de codificación/descodificación de la clase 'String'. –
¿El contexto da alguna pista de por qué la conversión de cadenas puede haber sido o ha sido necesaria? –
@ T.J.Crowder: +1, por supuesto! No quise decir la diferencia en el objeto real referido. Gracias por señalar eso. – OceanBlue