sql >> Database teknologi >  >> RDS >> Oracle

Java - Tæl præcis 60 tegn fra en streng med en blanding af UTF-8 og ikke UTF-8 tegn

Så vidt jeg forstår, vil du begrænse String længde på en måde, som den kodede UTF-8 repræsentation ikke overstiger 60 bytes. Du kan gøre det på denne måde:

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. PL/SQL - Brug listevariabel i Where In-klausul

  2. kan vi nævne en standard begrænsning i oracle

  3. Sådan bruger du serversidemarkører med psycopg2

  4. Hvordan skriver man kombinatorisk funktion i postgres?