Pass MUTF-8 paths to open(2) instead of UTF-8.

Modified UTF-8 and UTF-8 differ with respect to how they handle
non-BMP characters. Modified UTF-8 uses 2 x 3 byte encodings, one
each for the high and low surrogate, whereas UTF-8 uses a single
4 byte sequence.

File systems don't specify and encoding and therefore the file name
encoding will vary depending on how it's created. All standard
Java APIs (java.io.File / FileOutputStream etc.) use Modified UTF-8
filenames, so we assume that's the status quo.

We will also audit code from the rest of the platform to make sure
that file names are encoded consistently.

bug: 21578056

Change-Id: I8e37af7f7cc442805a48899917f8e61c8f81fba6
1 file changed