実際にはdbの名前である以下の文字列を保存しようとしています.API呼び出しを行い、この名前を取得します:
株式会社エス・ダブリュー・コミュニケーションズ</p>
コードを保存しているときに (サーブレット - 休止状態 - データベースのように)、エラーが発生します。
Caused by: java.sql.BatchUpdateException: ORA-12899: value too large for column "NAME_ON_ACCOUNT" (actual: 138, maximum: 100)
これは 23 文字ですが、1 文字あたり 6 バイトを使用しているように見えますが、138 バイトしかありません。
以下のコードは私に69を与えます:
byte[] utf8Bytes = string.getBytes("UTF-8");
System.out.println(utf8Bytes.length);
そして、これは私に92を与えます:
byte[] utf8Bytes = string.getBytes("UTF-32");
System.out.println(utf8Bytes.length);
IO クラスは必ず確認NLS_CHARACTERSET
しますが、6 バイトの文字を見たことがありますか? どんな助けでも大歓迎です。