Итак, здесь есть несколько проблем -
Ваш php не дает правильного результата - $encoded_text = utf8_encode($sms_text);
эта часть вызывает некоторые искажения и не нужна.
Помимо этого в коде C #, который вы вызываете msg = HttpUtility.UrlEncode(a);
, это заставляет вас кодировать URL-адрес типа a, а не строку.Опять же, все, что вам нужно сделать, это
UTF8Encoding utf8 = new UTF8Encoding();
string utf8Encoded = HttpUtility.UrlEncode(msg,utf8);
что-то в этом роде, если вы отключите кодирование mangling из вашего PHP и сделаете только прямое кодирование utf8 url для строки .. онив итоге получается одинаково как в C #, так и в PHP