String (FilePath path, byte @NotNull [] bytes) { Charset charset = null; if (path.getVirtualFile() != null) { charset = path.getVirtualFile().getCharset(); } if (charset != null) { int bomLength = CharsetToolkit.getBOMLength(bytes, charset); final CharBuffer charBuffer = charset.decode(ByteBuffer.wrap(bytes, bomLength, bytes.length - bomLength)); return charBuffer.toString(); } return CharsetToolkit.bytesToString(bytes, EncodingRegistry.getInstance().getDefaultCharset()); }