hola malenko!
gracias por responder. Tienes razón. Por este motivo ya tenía una función para controlar lo que comentas. Y así evitar desguisados, antes de enviar los mensajes. Digamos que el texto ya sale revisado.
El problema era que al cambiar de API, ahora las ñ no las enviaba y otros caracteres permitidos tampoco.
Al final he encontrado el error. Y sí, lo típico, el fallo tonto que te lleva 2 días de cabeza.
Resulta que ese código de ejemplo está bien, lo único que la codificación debe ir a así:
Cita: System.Web.HttpUtility.UrlEncode(mensaje)
en vez de lo que había puesto yo.
Por ahora ya se envía y recibe bien.