Если вы не можете получить данные, закодированные на сервере, то одним из способов является предварительная обработка их в JSON перед попыткой декодирования.Например, вы можете применить RegExp следующим образом:
var data = JSON.parse('{"text": "~#"}'.replace(/([^\d\w"':,{}~#]|\s)+/g, ' '));
Очевидно, вы хотите очень точно следовать spec при создании RegExp.