Hi Alan,
GetStringUTFChars unfortunately doesn't give you true UTF-8, but a
modified UTF-8 sequence
as used by the VM internally for historical reasons.
See answers to this related question on SO (which contains links to
official docs):
https://stackoverflow.com/questions/32205446/getting-true-utf-8-characters-in-java-jni
HTH
/Claes
On 2019-01-24 19:23, Alan Snyder wrote:
I am having a problem with file names that contain emojis when passed to a
macOS system call.
Things work when I convert the path to bytes in Java, but fail (file not found)
when I convert the path to bytes in native code using GetStringUTFChars.
For example, where String.getBytes() returns
-16 -97 -115 -69
GetStringUTFChars returns:
-19 -96 -68 -19 -67 -69
I’m not a UTF expert, so can someone say whether I should file a bug report?
(Tested in JDK 9, 11, and a fairly recent 12)