WWW.UnEscapeURL and WWW.EscapeURL cannot swap back?

I using UnEscapeURL with encoding big5 is work, input "%BC%D6 " return “樂”.

But i want to EscapeURL with encoding big5 is not correct. input “樂” return “%e6%a8%82”

        Debug.Log(WWW.UnEscapeURL("%BC%D6", System.Text.Encoding.GetEncoding("big5")));
        Debug.Log(WWW.EscapeURL("樂", System.Text.Encoding.GetEncoding("big5")));

Output:

%e6%a8%82

It mean EscapeURL with encoding is not work?

Reported to Unity

I guess this is not really an issue of EscapeURL not working correctly, but actually an issue of how your source code file is encoded. Since you put that character as a string literal into the source file and you probably have the file encoded with UTF8, the character is probably encoded as it is. “%e6%a8%82” is the correct UTF8 encoding.

By the way the actual URL encoding standard does allow encoding arbitrary data in an URL. However character data should be UTF8 encoded since any other encoding may not be interpreted correctly. Just try it with an online URL encoder / decoder. “%BC%D6” can’t be decoded at all while “%e6%a8%82” decodes to 樂 and 樂 encodes to “%e6%a8%82”.