Converts all Unicode characters in the string that have a case to uppercase. The exact manner that this is done depends on the current locale, and may result in the number of characters in the string increasing. (For instance, the German ess-zet will be changed to SS.)
A UTF-8 encoded string.
The data is owned by the caller of the function. The value is a NUL terminated UTF-8 string.
str, in bytes, or -1 if