2012-04-26 34 views
0

我有java代码下面的行..一些焦炭得到转化成()

String description = new String(somestring.getBytes("ISO_8859_1"),"UTF-8"); 

现在它得到存储在Oracle列

somestring1 - >(),作为一个雇主,吸引最有才能的人来这里工作。

somestring2 - >()中的高级领导已经分配了足够的劳动力。

所以,在这里我不能理解什么字符被替换()。

任何人都可以在这里帮助,哪些字符被转换成()并获取存储在数据库中。

感谢, - 键

+0

Java永远不会将任何角色转换为一对parens。 – bmargulies 2012-04-26 10:38:41

回答

0

您的代码已损坏,并且通常会破坏文本。

String description = new String(somestring.getBytes("ISO_8859_1"),"UTF-8"); 

这指示Java采用UTF-16 unicode字符序列,并尝试将它们表示为8859-1字节。不在8859-1中的每个字符将被转换为'?'。然后,您要求Java假装这些字节是UTF-8,然后再转回(UTF-16)。这会损坏另一个字符,因为8859-1与UTF-8不同。到达甲骨文时,这是一个火车残骸。