2012-04-26 78 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不同。到達甲骨文時,這是一個火車殘骸。