public String getURI()
    {
        COSBase base = action.getDictionaryObject(COSName.URI);
        if (base instanceof COSString)
        {
            byte[] bytes = ((COSString) base).getBytes();
            if (bytes.length >= 2)
            {
                // UTF-16 (BE)
                if ((bytes[0] & 0xFF) == 0xFE && (bytes[1] & 0xFF) == 0xFF)
                {
                    return action.getString(COSName.URI);
                }
                // UTF-16 (LE)
                if ((bytes[0] & 0xFF) == 0xFF && (bytes[1] & 0xFF) == 0xFE)
                {
                    return action.getString(COSName.URI);
                }
            }
            return new String(bytes, StandardCharsets.UTF_8);
        }
        return null;
    }
@Test
    void testUTF16BEURI() throws IOException
    {
        PDActionURI actionURI = new PDActionURI();
        
        // found in govdocs file 534948.pdf
        COSString utf16URI = COSString.parseHex("FEFF0068007400740070003A002F002F00770077"
                + "0077002E006E00610070002E006500640075002F0063006100740061006C006F006700"
                + "2F00310031003100340030002E00680074006D006C");
        actionURI.getCOSObject().setItem(COSName.URI, utf16URI);
        assertEquals("http://www.nap.edu/catalog/11140.html", actionURI.getURI());
    }