sql >> Databasteknik >  >> RDS >> Oracle

Java - Räkna exakt 60 tecken från en sträng med en blandning av UTF-8 och icke UTF-8 tecken

Så vitt jag förstår vill du begränsa String längd på ett sätt som den kodade UTF-8 representationen inte överstiger 60 byte. Du kan göra så här:

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. Hur trunkerar man en tabell med Doctrine?

  2. Konvertera UPDATE med INNER JOIN från SQL för användning i MySQL

  3. MySQL för att fylla i saknade datum när du använder GROUP BY DATE(table.timestamp) utan att gå med på temporär tabell

  4. Postgres jsonb kapslad array tillägg