Я не знаю об Objective C, но в Java символами являются UTF-16, и таким образом String внутренний буфер символов. Вы можете конвертировать из и в UTF-8, если вам нужно:
// creates a String from the bytes understanding them as UTF-8 chars
byte[] data = ...
new String(data, "UTF-8");
или
// get the bytes that would represent that string in UTF-8
String myString = "Hello";
myString.getBytes("UTF-8");
Надеюсь, это поможет ...
Примечание: если вам нужно потоковое решение, вы также можете использовать InputStreamReader и OutputStreamWriter для этого же преобразования, но это уже другая история ...