if (CharUtils.isHighSurrogate(c1) && position() < limit()) {
char c2 = get();
if (CharUtils.isLowSurrogate(c2)) {
return new char[] {c1,c2};
} else {
throw new InvalidCharacterException(c2);
}
} else if (CharUtils.isLowSurrogate(c1) && position() > 0) {
char c2 = get(position()-2);
if (CharUtils.isHighSurrogate(c2)) {
return new char[] {c1,c2};
} else {
throw new InvalidCharacterException(c2);
}
}
}
return new char[] {get()};
}