一些char被转换成()

时间:2012-04-26 10:37:41

标签: java

我有以下一行java代码..

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

现在它已作为

存储在oracle列中

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

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

所以,在这里我无法理解什么char被()取代。

任何人都可以在这里帮忙,哪个char被转换为()并存储在db。

谢谢, - 键

2 个答案:

答案 0 :(得分:1)

  

我有以下一行java代码

嗯,你不应该。这行代码根本就是错误的,不应该存在。它表明你在编码方面做了一些非常错误的事情。阅读The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

后,删除该行并修复您认为需要该行的内容

答案 1 :(得分: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不同。当它到达甲骨文时,它就是火车残骸。