Кодировка JQuery Base64 со специальными символами - PullRequest
0 голосов
/ 23 мая 2018

У меня есть приложение с полем ввода, где вы вводите свое имя.Приложение выводит имя в PDF-документе с FPDF.Поскольку это приложение на шведском языке, многие люди будут вводить имена со специальными символами, такими как å, ä, ö.Один из входных данных (имя человека) выглядит следующим образом:

fromName = $.base64.encode($('#voucherName').val())

Это проходит:

$.ajax({
    url: frontend_ajax_object.ajaxurl,
    type: "POST",
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    data: 'action=wpgv_doajax_pdf_save_func&nonce='+nonce+'&template='+templates_id+'&for='+forName+'&from='+fromName+'&value='+voucherValue+'&message='+message+'&expiry='+expiry+'&code='+code+'&firstname='+firstName+'&lastname='+lastName+'&email='+email+'&address='+address+'&pincode='+pincode+'&paymentmethod='+paymentMethod,
    success: function(a) {
        window.location.replace(a);
    },
    error: function() {
        alert('Error occured');
    }
});

Затем он декодируется в php следующим образом:

$from = sanitize_text_field(base64_decode($_POST['from']));

Но проблема в том, что когда кто-то, например, вводит имя Björn, специальный символ "ö" i отображается странными символами мусора.

...