I got [burned by win32-dir](http://projects.puppetlabs.com/issues/22493) returning a binary encoded string, which if you then called `String#encode('UTF-8')` on, would blow up -- since it didn't know how to convert from `ASCII-8BIT` to `UTF-8`. I think we can safely assume that the [`:path_buffer`](http://msdn.microsoft.com/en-us/library/ff552012.aspx) is always a wide character string (it's declared as `WCHAR` and not `TCHAR`), so we could do something like:

<pre>
result = reparse_data[:path_buffer].to_a[offset, length].pack('C*')
result.force_encoding("UTF-16LE")
</pre>

So that later the conversion to UTF-8 will always work as expected.