sql >> Database >  >> RDS >> Oracle

Java - Tel precies 60 tekens uit een tekenreeks met een combinatie van UTF-8- en niet-UTF-8-tekens

Voor zover ik begrijp wil je de String . beperken lengte op een manier dat de gecodeerde UTF-8 representatie niet groter is dan 60 bytes. Je kunt het op deze manier doen:

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. Een PL SQL-functie aanroepen met objectparameter in java

  2. TO_DATE probleem met Oracle DBMS_SQL.EXECUTE functie

  3. Wat is het meest geschikte gegevenstype voor het opslaan van een IP-adres in de SQL-server?

  4. Zoeken naar meerdere trefwoorden in sql