0

次のJavaコード行があります..

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

これで、Oracle 列に次のように格納されました。

somestring1 --> () は、雇用主として、最も才能のある人々を引き付けてここで働きます。

somestring2 --> () 内のシニア リーダーは、十分な労働力を割り当てています。

したがって、ここでは、どの文字が () に置き換えられているのか理解できません。

char が () に変換され、db に格納されています。

ありがとう、ボンド

4

2 に答える 2

1

次のJavaコード行があります

まあ、あなたはすべきではありません。そのコード行は根本的に間違っており、存在すべきではありません。エンコーディングに関して非常に間違ったことをしていることを示しています。The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)を読んだ後、その行を削除し、その行が必要だと思われる原因を修正します。

于 2012-04-26T10:40:45.097 に答える
0

あなたのコードは壊れており、定期的にテキストが破損します。

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

これは、一連の UTF-16 Unicode 文字を取得し、それらを 8859-1 バイトとして表現しようとするように Java に指示します。8859-1 にない各文字は「?」に変換されます。次に、これらのバイトが UTF-8 であると見なしてから、UTF-16 に (戻す) ように Java に要求しています。8859-1 は UTF-8 と同じではないため、これによりの文字列が破損します。オラクルに到着する頃には、大破しています。

于 2012-04-26T10:41:15.667 に答える