0

我有以下java代码行..

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

现在它被存储在 oracle 列中

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

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

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

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

谢谢,-邦德

4

2 回答 2

1

我有以下一行java代码

好吧,你不应该。那行代码根本上是错误的,不应该存在。它表明您在编码方面做错了事。在阅读了每个软件开发人员绝对、肯定必须了解 Unicode 和字符集的绝对最小值(没有借口!)之后,删除该行并修复任何让您认为需要该行的内容

于 2012-04-26T10:40:45.097 回答
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 不同。当它到达甲骨文时,它已经是火车残骸了。

于 2012-04-26T10:41:15.667 回答