resources/src/main/java/org/robolectric/res/android/ResourceString.java
public static byte[] encodeString(String str, Type type) {
    byte[] bytes = str.getBytes(type.charset());
    // The extra 5 bytes is for metadata (character count + byte count) and the NULL terminator.
    ByteArrayDataOutput output = ByteStreams.newDataOutput(bytes.length + 5);
    encodeLength(output, str.length(), type);
    if (type == Type.UTF8) {  // Only UTF-8 strings have the encoding length.
      encodeLength(output, bytes.length, type);
    }
    output.write(bytes);
    // NULL-terminate the string
    if (type == Type.UTF8) {
      output.write(0);
    } else {
      output.writeShort(0);
    }
    return output.toByteArray();
  }
public static byte[] encodeString(String str, Type type) {
    byte[] bytes = str.getBytes(type.charset());
    // The extra 5 bytes is for metadata (character count + byte count) and the NULL terminator.
    ByteArrayDataOutput output = ByteStreams.newDataOutput(bytes.length + 5);
    encodeLength(output, str.length(), type);
    if (type == Type.UTF8) {  // Only UTF-8 strings have the encoding length.
      encodeLength(output, bytes.length, type);
    }
    output.write(bytes);
    // NULL-terminate the string
    if (type == Type.UTF8) {
      output.write(0);
    } else {
      output.writeShort(0);
    }
    return output.toByteArray();
  }
public static byte [ ] encodeString ( String str , Type type ) { byte [ ] bytes = str . getBytes ( type . charset ( ) ) ; // The extra 5 bytes is for metadata (character count + byte count) and the NULL terminator. ByteArrayDataOutput output = ByteStreams . newDataOutput ( bytes . length + 5 ) ; encodeLength ( output , str . length ( ) , type ) ; if ( type == Type . UTF8 ) { // Only UTF-8 strings have the encoding length. encodeLength ( output , bytes . length , type ) ; } output . write ( bytes ) ; // NULL-terminate the string if ( type == Type . UTF8 ) { output . write ( 0 ) ; } else { output . writeShort ( 0 ) ; } return output . toByteArray ( ) ; }
Encodes a string in either UTF-8 or UTF-16 and returns the bytes of the encoded string.
Strings are prefixed by 2 values. The first is the number of characters in the string.
The second is the encoding length (number of bytes in the string).

<p>Here's an example UTF-8-encoded string of ab©:
<pre>03 04 61 62 C2 A9 00</pre>

@param str The string to be encoded.
@param type The encoding type that the {@link ResourceString} should be encoded in.
@return The encoded string.
Encodes a string in either UTF - 8 or UTF - 16 and returns the bytes of the encoded string . Strings are prefixed by 2 values . The first is the number of characters in the string . The second is the encoding length ( number of bytes in the string ) .