Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Java - Đếm chính xác 60 ký tự từ một chuỗi có hỗn hợp các ký tự UTF-8 và không phải UTF-8

Theo như tôi hiểu, bạn muốn giới hạn String chiều dài theo cách mà UTF-8 được mã hóa biểu diễn không vượt quá 60 byte. Bạn có thể làm theo cách này:

String s=…;
CharsetEncoder enc=StandardCharsets.UTF_8.newEncoder();
ByteBuffer bb=ByteBuffer.allocate(60);// note the limit
CharBuffer cb = CharBuffer.wrap(s);
CoderResult r = enc.encode(cb, bb, true);
if(r.isOverflow()) {
    System.out.println(s+" is too long for "
                      +bb.capacity()+" "+enc.charset()+" bytes");
    s=cb.flip().toString();
    System.out.println("truncated to "+s);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi Oracle kiểu dữ liệu không nhất quán:CHAR dự kiến ​​nhận được DÀI

  2. Kiểu dữ liệu Oracle Date, được chuyển đổi thành 'YYYY-MM-DD HH24:MI:SS TMZ' thông qua SQL

  3. Có phải dbms_output.put () được đệm khác với dbms_output.put_line () không?

  4. Thêm ngày vào dấu thời gian

  5. Quy trình lưu trữ của Spring - kết quả trả về từ quy trình luôn trống