sql >> Databáze >  >> RDS >> Oracle

Java – Počítejte přesně 60 znaků z řetězce se směsí znaků UTF-8 a jiných než UTF-8

Pokud jsem pochopil, chcete omezit String délku způsobem, který odpovídá kódovanému UTF-8 reprezentace nepřesahuje 60 bajtů. Můžete to udělat takto:

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. Určení, zda jsou pole Data v Oracle typu Number

  2. Proč MySQL umožňuje seskupování podle dotazů BEZ agregačních funkcí?

  3. MySql Amazon RDS:Chyba aplikace „Funkce Innodb zakázána“.

  4. Výběr dostupných časových úseků pro konkrétní datum