Specials characters for GUI.Label works in JS but not C#

I’m using specials characters like ★, ☞, ☟ for GUI.Label, it works well in Javascript, but in C# it shows as “???”.

While I have a workaround by defining the string in Javascript & referencing it in C#, I’m wondering why.

This is not related to GUI.Label but directly to the script language.

Javascript does a lot of convenience work in the background for you. Like recognizing types of variables and functions or the direct manipulation of variables of a struct. Apperently it also recognices those special characters.

A string is actually a sequence of unicode characters. Internally those special characters are saved like \uXXXX. For C# you will have to look up the corresponding unicode and write it manually. Pretty much like you write
for a line break or for a tabulator.

On a side note: If you make your string public and paste ★, ☞, ☟ into the textfield, then it will still work.